暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux安装软件包(下)

徐阿马 2020-03-13
347

会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助



我们上一章说到rpm包的缺点是依赖关系太过于麻烦,这章便带来解决办法和源代码安装编译程序。




RPM包管理命令——yum(Yellowdog  Updater  Modified)

  • 基于RPM包构建的软件更新机制

  • 可以自动解决依赖关系

  • 所有软件包由集中的YUM软件仓库提供


软件仓库的提供方式

  •     FTP服务:ftp://......

  •     HTTP服务:http://......

  •     本地目录:file:///......


    借助于YUM软件仓库,可以完成安装,卸载,自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无需管理员逐个,手工的去安装每一个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台yum源服务器可以大大缓解软件安装,升级等对于Internet的依赖。

    要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装文件的软件仓库,提供软件库的服务器也称为“源”服务器,在客户机中只要正确指定软件仓库的地址信息,就可以通过对应的“源”服务器来安装或更新软件了。

    YUM软件仓库即可以作为本地YUM源,即为本地主机提供软件源服务,也可以借助FTP或HTTP协议来进行发布,这样可以面向网络中的所有客户机提供源服务,为了便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据库(repodata),其中收集了目录下所有rpm包的头部信息。

    在Centos7系统的安装光盘中,已针对软件目录Packages/建好了repodata数据,因此只要简单的讲centos7系统盘挂载到指定目录或将光盘全部内容复制到硬盘,通过本地目录,HTTP或FTP进行发布,就可以作为软件仓库了。

    本章节主要介绍本地目录file:///......方式提供软件仓库,关于ftp,http方式后面章节会介绍。


yum的配置文件

基本设置:/etc/yum.conf

日志文件:/var/log/yum.log

仓库文件:/etc/yum.repos.d/*.repo


  1. YUM软件仓库

    为了简单理解,我们不需要将光盘全部内容复制到硬盘,只需要直接指定我们挂载好的目录即可。


首先挂载目录

如图:


2.为客户机指定YUM仓库位置

客户机指向yum仓库的配置文件位于/etc/yum.repos.d/目录下,文件后缀名.repo为结尾。


切到 /etc/yum.repos.d/ 目录下,并查看

如图:

CentOS-*.repo是centos系统安装好后,系统默认提供的执行centos官方yum软件仓库的配置文件,这些配置文件,我们可以创建一个目录把它们剪切进去,也可以直接删除,这里阿马就直接删除了

如图:


然后执行vi命令创建指向本地yum软件仓库的配置文件

vi /etc/yum.repos.d/centos.repo

并编辑内容

如图:

说明:

配置内容如下:

[centOS7]  //仓库名称

name=file source  //仓库描述信息

baseurl=file:///mnt/    //URL访问路径,即软件仓库的路径

enabled=1    //启用此软件仓库

gpgcheck=1    //验证软件包的签名

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    //GPG公钥文件的位置

如果不做软件包的签名验证,可以将gpgcheck=1改为gpgcheck=0,并将gpgkey删除或者注释掉。


做完以上步骤,YUM软件仓库就安装好啦

我们先来试试安装vim命令

yum -y install vim

结果如图下所示就OK了:


接下来我们说说yum的命令格式:

格式:yum  <options>    <command>    <>package>

参数说明:

options常用的有:

-y :如果在工作过程中如要使用者响应,这个参数可以直接回答yes


command:

list :列出在yum server 上面的RPM套件;若执行yum list  installed则表示只列出系统中已安装的软件包,yum list available则表示只列出软件仓库中可用(尚未安装)的软件包,yum list update则表示列出可以升级版本的软件包。

install :安装某个套件

update:升级某个套件,如果update后面没有接套件名称,即更新目前主机所有已安装的套件。

info :列出某个套件的详细信息,相当于rpm -qi package内容

clean :将已下载到本机的packages或headers移除

remove :移除已经安装在系统中的某个套件



yum update 全部更新

yum update package 更新指定程序包package

yum check-update 检查可更新的程序

yum info <package>显示安装包信息

yum  list 显示所有已经安装和可以安装的程序包

yum list <package>显示指定程序包安装情况

yum search  <keyword>查找软件包,当需要根据某个关键词来查找相关的软件包时,可以执行yum  search关键词,默认仅根据软件包名称和描述信息进行搜索,若执行 yum  search all关键词,可以扩大搜索范围,例如,以下将搜索软件仓库并列出与httpd相关的软件包:yum search all httpd

yum clean headers 清除header

yum clean packages 清除下载的rpm包

yum clean all 清除header与rpm包

yum grouplist 列出所有组

yum groupinstall 安装某个软件组如:yum groupinstall base

下面我们再次安装lrzsz的软件包,体验一下yum的强悍之处。

yum -y install lrzsz  (服务机器和客户机器互传文件)

用法:

sz filename :从服务端发送到客户端

rz :从客户端发送到服务端,运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器上





从源代码编译安装程序

    几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式生效,只需要Linux安装了gcc,make,automake,autoconf都支持源码安装。


源码安装的优点:

  • 获得最新的软件版本,及时修复BUG

  • 根据用户需要,灵活定制软件功能

  • 因为可以定位到代码,所以debug方便

  • 本机兼容性最好(由于是本机编译过的,只要编译通过,就没有各种库的依赖问题)


源码安装的缺点:

  •    编译麻烦

  •    缺乏自动依赖管理,软甲升级麻烦



源码安装前的准备工作:

  1. 源代码下载:.tar和.tar.bz2格式居多,源代码下载推介去官网下载,也可以去第三方下载。

  2. 完整性校验,md5sum校验工具,计算md5校验和官方提供的值相比较,判断是否一致,若相同则说明该软件包没有被非法改动,对于校验和不一致的软件包,应尽量不要使用,以免带来病毒,木马等不安全因素。

  3. 确认源代码编译环境:需安装支持 C/C++程序编译器。



首先查看有没有gcc编译器

rpm -q gcc 

如图:

没有执行下一条命令:

安装成功如图:

可以执行

gcc --version

make --version

开发工具的信息

如图:

获得所需要的源码以后,安装的基本过程包括解包,配置(检查安装环境,并对软件的安装目录,功能选择等参数进行预先设置),编译和安装这几个通用步骤,当然,这四个步骤并不是一成不变的,实际安装时应参考软件自带的文档,如INSTAL,REAMDE。如图所示:

以编译安装apache为例,说明应用程序的源码编译安装过程

  1. 下载apache的源码包文件  httpd-2.4.25.tar.gz

下载地址:http://archive.apache.org/dist/httpd/

如图:


(1)本章安装的httpd版本为httpd-2.4.25

(2)安装环境为CentOS7

(3)用户权限必须是root,非root用户请切换至root用户下

(4)安装之前确保本计算机中没有使用rpm安装httpd。使用rpm -q httpd查看


2.解压归档压缩包至当前目录下

首先把下载好的压缩包传到家目录下并解压

或者使用 -C 解压到指定路径下


解压完毕:

3.进入解压后的文件目录并查看

cd httpd-2.4.25

如图:

在这之前我们临时缺少APR lib,临时安装一个,一般来说后缀名带devel的为开发包

# yum -y install apr apr-devel apr-util apr-util-devel pcre pcre-devel

如图:


接下来我们创建一个目录用来配置此包适应本操作系统

如图:

使用./configure [OPTION]...[VAR=VALUE]...,配置此包适应本操作系统

注意:当前所在位置必须是在解压出来的tar包当中!!!

如图:


然后在当前目录下执行make命令进行编译

如图:


编译完成后,在当前目录下执行make install 命令安装

如图:

安装成功了


如果想重新编译,切到源码解压路径下,清理掉第一次编译安装的makefile

cd /root/httpd-2.4.25/

执行:make clean

然后重新编译安装即可。




为httpd添加至环境变量

  源码编译安装的包是不能在终端直接敲命令使用的。

    如果想使用其命令可以进入其安装目录下的bin目录,直接执行此文件目录中的可执行文件


例如:我想执行httpd下的apachectl命令,那么进入httpd的安装目录/usr/local/httpd,然后进入其bin目录,执行apachectl

如图:

输入        ./apachectl start

结果如下:

然后查看httpd的监听端口,在当前目录下输入:

netstat -anpt | grep httpd

我们会发现这种情况:

这种情况是我们缺少组件导致没有安装导致的,只要在输入

yum install net-tools

这条命令

中途输入y

就安装成功了

如图:


安装成功以后,继续执行
netstat -anpt | grep httpd

这条命令,显示如下:


在浏览器输入你的server的ip访问apache的默认web测试页

注意:要确保防火墙允许http服务的通信,或者直接把防火墙关了

ststemctl stop firewalld

如图:

接下来打开浏览器输入我们server的ip,

例如阿马这里的ip是:192.168.1.105

我们会发现如下内容:

此时说明http已经安装好了,可以工作了,在httpd的安装子目录中,htdocs是存放浏览器页面的,我们可以进入更改内容。

阿马这里把

It works!

改为

Hello Linux

如图:

更改之前是It works!



更改之后是Hello Linux

这时候我们在打开浏览器输入自己servier的ip名称,会发现此时浏览上页面的内容是我们刚刚修改的Hello Linux

如图:

如果想要直接在任何目录都能使用httdp的命令,就可以在/etc/profile文件里面添加

export PATH=$PATH:/usr/local/httpd/bin

然后保存退出即可。






故事很短,道理很长,学无止境,不忘初心,砥砺前行              

今天的杂谈就到这里,不一定对每个人有用,但是对有需要的人会有帮助,做不到人民币,人人喜欢                                              如果觉得小编说的对,介绍给你们同事,朋友,亲戚吧,谢谢你们呦!,每天不定时更新哦!!!

微信搜索 “徐阿马杂谈”  关注公众号,把你们想知道的,想提的意见发给我,我会采纳!期待你的关注!

文章转载自徐阿马,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论