内容:
8.1 使用rpm命令 安装、查看、卸载rpm软件包
8.2 yum管理软件包
8.3 tar源码包管理
8.1 软件包的管理
rpm:二进制包 -- 已使用GCC编译后的
tar:源码包
RPM:RPM Package Manager(RPM软件包管理器)
8.1.1 rpm 软件包的管理
rpm包的获取方式:1.Centos系统镜像光盘
2.网站。rpmfind.net
3.安装mysql,nginx软件等。可以去官方网站下载。
rpm包格式说明:
[root@localhost ~]# ls /mnt/Packages/sqlite-3.7.17-8.el7.x86_64.rpm
/mnt/Packages/sqlite-3.7.17-8.el7.x86_64.rpm
sqlite -3. 7. 17- 8. el7. x86_64.rpm
软件名 主版本号 次版本号 修订 release 操作系统版本 软件包是64位
8.1.2 安装rpm软件
RPM工具使用分为安装、查询、验证、更新、删除等操作。命令格式:rpm [options] 软件包
参数:
-i | install,安装软件包 |
-v | 显示附加信息,提供更多详细信息 |
-V | 校验,对已经安装的软件进行校验 |
-h | --hash 安装时输出####标记 |
rpm使用时,在安装和更新升级时使用软件包全名。对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等,使用包名。默认是去 /var/lib/rpm 下面进行搜索。当一个rpm包安装到系统中后,安装信息通常会保存在本地 /var/lib/rpm 目录下
8.1.2.1 从本地安装
[root@localhost ~]# rpm -ivh /mnt/Packages/sqlite-3.7.17-8.el7.x86_64.rpm
Preparing... ################################# [100%]
package sqlite-3.7.17-8.el7.x86_64 is already installed
[root@localhost ~]# rpm -qa | grep sqlite
sqlite-3.7.17-8.el7.x86_64
8.1.2.2 从网络下载直接安装centos epel源
[root@localhost ~]# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
warning: /var/tmp/rpm-tmp.KIFVDH: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-12 ################################# [100%]
# epel源是对Centos 7系统中自带的base源的扩展
8.1.3 rpm查询功能
用法:rpm -q(query) 常与下面参数组合使用
-a(all):查询所有已安装的软件
-f(file):系统文件名(查询系统文件所属那个软件包),反向查询
-i:显示已经安装的rpm软件包信息,后面直接跟包名
-l(list):查询软件包中文件安装的位置
-p:查询未安装软件包的相关信息,后面跟软件的名称
-R:查询软件包的依赖关系
8.1.4 查看软件包内容是否被修改
使用方法:rpm -Vf 文件路径
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost ~]# rpm -qf /usr/bin/ls
coreutils-8.22-23.el7.x86_64
[root@localhost ~]# rpm -Vf /usr/bin/ls
[root@localhost ~]# echo aaa >> /usr/bin/ls
[root@localhost ~]# rpm -Vf /usr/bin/ls
S.5....T. /usr/bin/ls
[root@localhost ~]# rpm -V coreutils
S.5....T. /usr/bin/ls
注:如果出现的全是点,表示测试通过,出现下面的字符代表某测试失败
5 | MD5校验和是否改变,也可看成文件内容是否改变 |
S | 文件长度,大小是否改变 |
L | 符号链接,文件路径是否改变 |
T | 文件修改日期是否改变 |
D | 设备 |
U | 用户,文件的属组 |
G | 用户组 |
M | 模式,包含许可和文件类型 |
? | 不可读文件 |
8.1.5 rpm包卸载和升级
用法:
# 卸载 rpm -e (erase) 包名
[root@localhost ~]# yum -y install zsh
[root@localhost ~]# rpm -qa zsh
zsh-5.0.2-34.el7_8.2.x86_64
[root@localhost ~]# rpm -e zsh
[root@localhost ~]# rpm -qa zsh
# 参数 --nodeps 忽略依赖,建议在卸载时不要用rpm去卸载有依赖关系的包,应该用yum
[root@localhost ~]# rpm -e --nodeps lrzsz
# 升级 rpm -Uvh 包名
[root@localhost ~]# rpm -Uvh /mnt/Packages/openssl-1.0.2k-16.el7.x86_64.rpm
# 因为升级软件包时会有一些依赖包要解决,所以一般都是使用 yum update 包名 来升级
8.1.6 解决rpm依赖关系
[root@localhost ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm
error: Failed dependencies:
mariadb(x86-64) = 1:5.5.56-2.el7 is needed by mariadb-server-1:5.5.56-2.el7.x86_64
mariadb-libs(x86-64) = 1:5.5.56-2.el7 is needed by mariadb-server-1:5.5.56-2.el7.x86_64
perl(DBI) is needed by mariadb-server-1:5.5.56-2.el7.x86_64
perl(Data::Dumper) is needed by mariadb-server-1:5.5.56-2.el7.x86_64
perl-DBD-MySQL is needed by mariadb-server-1:5.5.56-2.el7.x86_64
perl-DBI is needed by mariadb-server-1:5.5.56-2.el7.x86_64
# 解决方法,使用yum 安装,由于rpm依赖关系非常多,所以一般都是使用yum -y install 软件名 进行安装
[root@localhost ~]# yum -y install mariadb-server
Installed:
mariadb-server.x86_64 1:5.5.65-1.el7
Dependency Installed:
mariadb.x86_64 1:5.5.65-1.el7 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7
perl-DBI.x86_64 0:1.627-4.el7 perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7
Dependency Updated:
mariadb-libs.x86_64 1:5.5.65-1.el7
Complete!
8.2 yum的使用
yum 全称为 Yellow dog Updater,Modified。是一个前端软件包管理器。基于rpm包管理,能够从指定服务器自动下载rpm包并安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包,无需繁琐的安装每个依赖关系。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,基于C/S架构
8.2.1 配置yum源
8.2.1.1 配置本地yum源
1. 先在虚拟机上挂载完整版镜像,然后在终端操作
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 is write-protected, mounting read-onl
[root@localhost ~]# vim /etc/yum.repos.d/centos7.repo
# 在新建的repo文件中添加如下内容
[centos7] #yum源名称,用来区分不同的yum源
name = Centos7 #对yum源的描述
baseurl = file:///mnt #yum源的路径,提供方式包括ftp(ftp://...),http(http://...),本地(file:///光盘挂载的位置)
enable = 1 #是否启用,0为禁用
gpgcheck = 0 #使用公钥校验rpm包的正确性,0为不校验
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7 #指定进行rpm校验的公钥文件地址
8.2.1.2 网络yum源
Centos 7 配置网络yum源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# wget 下载文件 -O 把下载的文件存到另一个文件中
[root@localhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo
# 找到 baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
# $releasever 系统的版本的值等于下面的值,$baseurl等于 x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# yum 常用操作
[root@localhost ~]#yum clean all #清理yum缓存
[root@localhost ~]#yum list #查看列表
[root@localhost ~]#yum -y install 软件包名 #安装软件包 -y 直接安装
[root@localhost ~]#yum -y update #升级软件包,改变软件设置和系统设置,系统版本内核都升级
[root@localhost ~]#yum -y upgrade #升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变
[root@localhost ~]#yum -y update #不加任何包,表示整个系统进行升级
[root@localhost ~]#yum info httpd #查询rpm包作用
[root@localhost ~]#yum provides /usr/bin/find #查询包是哪个软件安装的
[root@localhost ~]#yum -y remove 包名 #卸载包
[root@localhost ~]#yum search keyword #按关键字搜索软件包
# yum 安装开发工具软件包组
[root@localhost ~]#yum grouplist #查询有哪些软件包组
[root@localhost ~]#yum groupinstall groupname
[root@localhost ~]#yum groupinstall 'Development tools' #安装开发工具软件包组
8.3 tar源码包管理-srpm源码包安装方法
8.3.1 源码安装nginx
1.编译环境,如gcc和gcc-c++编译器,make
2.准备软件:nginx-1.8.1.tar.gz
链接:https://pan.baidu.com/s/1kWPc2SAHBuRLHNV3VaS3Vw
提取码:gjls
# 部署nginx
[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel
# pcre:支持正则表达式,地址重写 rewrite
# 开始安装,编译步骤 ./configure make make install
[root@localhost ~]# cd /usr/src/
[root@localhost ~]# sz #把nginx软件包上传至服务器
[root@localhost src]# tar xvf nginx-1.8.1.tar.gz
[root@localhost src]# cd nginx-1.8.1
[root@localhost src]# ./configure --prefix=/usr/local/nginx
[root@localhost src]# make -j 4
[root@localhost src]# make install
# 源码编译安装详解:
# ./configure:
# a:指定安装路径,--prefix=/usr/local/nginx
# b:启用活禁用某项功能,例如 --enable-ssl,--disable-filter --with-httpd_ssl_module
# c:和其他软件关联 --with-pcre
# 删除源码包 make uninstall
# 有时会删除不干净,所以一般在安装时,在./configure 步骤中添加 --prefix 参数,这样删除# 或备份时,直接删除--prefix指定的安装目录就可以了。