day98
一.软件包介绍
与windows类似,在linux系统上也可以安装各种应用程序,或称软件包,linux下软件包分为三类
二.rpm包管理
1.什么是rpm包
在主流的linux系统上,多数软件的安装、升级、移除以及维护工作都是使用RPM软件包管理程序来完成的,那什么是RPM软件包呢?
RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,通常软件的稳定版会被官方做成rpm,所以软件版本偏低。
RPM包格式举例
# 例1
mysql-connector-odbc-5.2.5-8.el7.x86_64.rpm
软件包名:mysql-connector-odbc
版本号Version:5.2.5
发布版本Release:8.el7
平台:el7.x86_64
后缀:.rpm
# 例2
abrt-python-doc-2.1.11-
57.el7.centos.noarch.rpm
abrt-python-doc #软件包的名称
2.1.11 #软件的版本
57 #软件编译之后的发布的次数
el7 #适合的操作系统的版本
noarch #适用于不同版本的CPU
.rpm #后缀名
RPM闭包使用的平台
redhat/centos/redora/suse
# 查看自己当前平台
[root@localhost ~]# uname -m
x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
管理rpm包有两种命令
# 1、rpm命令:
需要自己找到rpm包,并且手动解决包的依赖性关系
ps:实际情况下,很难分辨缺少什么依赖包
# 2、yum命令:
相关rpm包事先都被存放于一个仓库里,仓库包含了所有的依赖包,所以yum安装可以帮我们解决依赖性问题
RPM包获取
# 1.本地的ISO镜像光盘(软件包可能存在版本偏低情况): 挂载镜像有以下三种方式
方式1:
[root@localhost ~]# mount /dev/cdrom /opt/
#将光驱内的镜像文件挂在到/opt目录下
方式2:
[root@localhost ~]# mount /dev/sr0 /opt/ #将光驱内的镜像文件挂在到/opt目录下
方式3
[root@localhost ~]# mount -o loop /xxx.iso/opt #将光驱内的镜像文件挂在到/opt目录下
查看光盘里的rpm包
[root@localhost ~]# ls /opt/Packages/
# 2.自己去网上下载rpm包进行安装
# 3.联网从yum仓库里获取rpm包
# yum的时候
三.rpm命令
选项
如何查询已经安装好的rpm包
#1、安装:rpm -ivh <RPM包名全称>
#2、卸载:rpm -e <RPM包名>
#3、升级:rpm -Uvh <RPM包名>
#4、查询:
rpm -qa #查询系统中安装的所有RPM软件包
[root@egon ~]#rpm -qa|grep ssh
#检索系统中已经安装的有关ssh的软件包
rpm -qa | grep php
#检索系统中已经安装有关php的软件包
rpm -q <RPM包名> #查询指定软件包是否已安装
[root@egon ~]# rpm -q zip
zip-3.0-11.el7.x86_64
[root@egon ~]#rpm -q openssh-7.4p1-
21.el7.x86_64
rpm -qi <RPM包名> #查询系统中已安装包的描述信息
[root@egon ~]#rpm -qi rpm -q openssh-7.4p1-21.el7.x86_64
rpm -ql <RPM包名> #查询系统中已安装包里所包含的文件
[root@egon ~]#rpm -ql openssh-7.4p1-
21.el7.x86_64
rpm -qc <RPM包名> #查询指定软件包的所有配置文件
[root@egon ~]# rpm -qc mariadb
/etc/my.cnf.d/client.cnf
[root@egon ~]#rpm -qc openssh-7.4p1-
21.el7.x86_64
rpm -qd <RPM包名> # 查询某个包安装的帮助文档
[root@egon ~]# rpm -qd zlib
rpm -qf 文件路径 #查询系统中指定文件所属的软件包
[root@egon ~]# rpm -qf /usr/sbin/iptables
iptables-1.4.21-35.el7.x86_64
-p # 在上述选项的基础上加选项-p,就可以查看尚未安装的rpm包信息
[root@localhost ~]# rpm -qip /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
[root@localhost ~]# rpm -qlp /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
[root@localhost ~]# rpm -qcp /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
[root@localhost ~]# rpm -qdp /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
额外选项
--nomd5 # 不检验软件包的签名
--nodeps # 忽略依赖性安装软件,安装后软件有可能无法使用,最好是解决依赖性后再安装
[root@localhost ~]# rpm -e dos2unix --
nodeps # 忽略依赖关系
--force # 强制安装软件包,只有安装和升级可以强制执行
安装
#1、rpm包在本地
[root@egon ~]# mount /dev/sr0 /opt #将光驱镜像挂在到/opt目录下
[root@egon ~]# rpm -ivh /opt/Packages/iptables-1.4.21-35.el7.x86_64.rpm
#rpm方式安装iptables-1.4.21-35.el7.x86_64.rpm 软件包
#2、rpm来自于网络,如果安装过程中报错:curl: (60)Peer's Certificate has expired,请先将系统时间修改正确,然后再安装即可
[root@egon ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
#rpm方式安装网络zabbix-agent软件包
安装与依赖性
[root@egon ~]# rpm -ivh /opt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
#rpm方式安装本地镜像中的httpd软件包
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-
88.el7