第八节:Centos7系统软件包的管理与安装
8.1 使用rpm命令管理rpm软件包
8.1.1软件包的安装方式
通常在实际工作过程中,往往有以下软件包的安装方式:
1、yum或rpm安装方式
2、源码包的configure/make/make install "三步曲"安装方式
第一种适合rpm二进制包安装
第二种适合tar包组成的源码安装
8.2rpm包的管理
rpm:rpm package manager的缩写,也就是RPM软件包管理器
8.2.1 rpm包的安装
RPM工具使用分为安装、查询、验证、更新、删除等操作
命令格式:rpm 【参数】 rpm结尾的软件包
参数:
-i 是install--安装(常用)
-v 显示附加信息,提供更多详细信息(常用)
-V 校验,对已经安装的软件进行校验(常用)
-h --hash 安装时输出####标记(常用)
例1:lrzsz的rpm软件包安装
lrzsz是本地ssh与ssh服务器上交换文件的一种小软件,只适合文件不大的情况下用
[root@node-1 opt]# ll
-rw-r--r-- 1 root root 108472 Jan 1 2019 extundelete-0.2.4.tar.bz2
-rw-r--r-- 1 root root 290240 Jan 1 2019 lrzsz-0.12.20-27.1.el7.src.rpm
[root@node-1 opt]# rpm -ivh lrzsz-0.12.20-27.1.el7.src.rpm
例2:从网上下载直接安装centos epel扩展源
[root@node-1 opt]#rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
说明:平时工作中一般将/etc/yum.repo.d/目录下CentOS-Base.repo修改为阿里或163源链接后再安装epel源,其他源都删除
8.2.2 rpm包的查询
用法:rpm -q(query) 常与下面参数组合使用
-a 查询所有已安装的软件包
-f 个人理解为from,从哪个包安装的
-i 显示已经安装的rpm软件包信息,后面直接跟包名
-l 查询软件包中文件安装的位置列表
例1:实际工作中一般用rpm -aq |grep XX 来使用的
[root@node-1 opt]#rpm -qa | grep vim
例2:查询文件或命令属于哪个安装包
[root@node-1 opt]#rpm -qf which vim
(which vim 前后的符号是键盘左上角ESC下面的波浪符号,不是单引号)
8.2.3 rpm包的卸载
用法:rpm -e(erase)【参数】 包名
参数: --nodeps 忽略依赖,建议在卸载时不要用rpm去卸载有依赖关系的包,应该用yum
[root@node-1 opt]# rpm -e lrzsz
虽然rpm包管理使用起来很爽,但相关包的依赖关系往往让人头大,因此(划重点啦!)在平时工作中使用最多的还是yum包管理方式
8.2 yum管理软件包
yum:yellow page modify 也就是所谓带索引功能的黄页,因为有索引功能所以能解决包依赖的关系
使用yum管理软件包必须要正确配置yum源,由于第6节已经说明过RHCE中标准的配置本地yum源方法,在些只写出配置网络yum源方式
[root@node-1 opt]# cd /etc/yum.repos.d/
[root@node-1 yum.repos.d]#
[root@node-1 yum.repos.d]mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@node-1 yum.repos.d]wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@node-1 yum.repos.d]yum clean all && yum makecache fast
配置好后常用使用方法如下:
-y 非交换式安装
[root@node-1 opt]#yum -y update --升级系统,在新安装centos7.X操作系统后一般做此操作
[root@node-1 opt]#yum -y install httpd --安装httpd软件
[root@node-1 opt]#yum list |grep gcc --查询是否提供gcc包的安装
[root@node-1 opt]#yum remove httpd --卸载httpd软件,一般不加-y,给自己一个思考空间
[root@node-1 opt]#yum grouplist --查询可安装软件包组
[root@node-1 opt]#yum groupinstall "Development Tools" --安装软件包组
8.3 通过实战安装nginx说明tar源码包管理
8.3.1 实战源码安装nginx
- 编译环境如gcc和 gcc-c++编译器,make
- 准备软件 : nginx-1.12.2.tar.gz 3、部署Nginx [root@node-1 opt]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel 开始安装 源码编译3把斧:./configure , make ,make install [root@node-1 opt]#cd /usr/local/src && tar -zxvf nginx-1.12.2.tar.gz [root@node-1 opt]#cd nginx-1.12.2 [root@node-1 opt]#./configure --prefix=/usr/local/nginx [root@node-1 opt]#make -j 2 --几核CPU后面就跟数字几,我的虚拟机是2核心的,所以我后面的数字为2 此处是跟大神MK老师(也就是学神学院的申建明老师)学到的小技巧,在此表示感谢,执弟子礼 [root@node-1 opt]#make install
- 总结源码安装3把斧
第一把斧# ./configure
a. 指定安装路径,例如 --prefix=/usr/local/nginx
b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
c. 和其它软件关联,例如--with-pcre
在进行安装过程中会检查安装环境,如是否有编译器gcc等,有报错不要慌我一般这样处理的
1、用yum whatprovides 缺少文件关键字看能否查询到
2、在国内肯定根据报错信息关键字问一下度娘
3、yum search 缺少文件关键字
4、如果相应的包已经安装还提示编译报错,那就加个软件包-level 这种方式把
如yum install pcre pcre-devel 这种
configure命令后最终生成:Makefile
第二把斧# make -j 2 #按Makefile文件编译,可以使用-j 2指定2核心CPU编译,提升编译速度,实际工作中源码安装php等,加不加此参数相差的时间可以让您抽支烟加喝杯咖啡。
第三把斧# make install #按Makefile定义的文件路径安装
[root@node-1 opt]# make clean //清除上次的make命令所产生的object和Makefile文件。使用场景:当需要重新执行configure时,需要执行make clean
8.3.2 删除源码包:
安装完,删除:
make uninstall
有时删除不干净,所以建议大家安装时,在configure步骤添加一个: --prefix 参数。这样删除或备份时,直接对删除--prefix指定的安装目录操作就可以了。