1.yum与rpm的区别
yum命令在安装软件的时候会自己从镜像里找到依赖性,然后解决掉,解决不掉才会报错
rpm命令在安装软件的时候,不会解决依赖性,适用于所有软件包的安装
2.rpm软件包名称详解(以wps的rpm包为例)
wps-office-10.1.0.5672-1.a21.x86_64.rpm
软件名称 版本号 适用系统 架构 适用rpm体系软件
3.rpm 命令详解
rpm -ivh name.rpm # 安装
-i # 安装
-v # 显示过程
-h # hash加密
rpm -e name.rpm # 卸载
rpm -p name # 指定查询的是软件,这个软件已经安装
rpm -qp name.rpm # 指定查询的软件包,这个软件可以没有安装
rpm -ql name # 查询安装软件时生成的所有文件名称(软件必须已经安装)
rpm -qlp name.rpm # 查询软件安装后会生成什么文件(软件不一定安装)
rpm -qc name # 查询安装软件时生成的配置文件名称
rpm -qd name # 查询安装软件时生成的说明文件名称
rpm -qa # 查询系统中安装的所有软件
-q # 查看
-a # 所有
rpm -qf filename # 查询某文件属于哪个安装包
rpm -ivh name.rpm --nodeps # 忽略依赖性
rpm -ivh name.rpm --force # 强制安装,不能忽略依赖性
rpm -Kv name.rpm # 检测软件包是否被篡改
rpm -qp name.rpm --scripts # 检测软件在安装或卸载过程中执行的动作
rpm -qi name # 查看软件信息
rpm -qa | grep name # 查询软件是否安装(软件名可以不完整)
[root@localhost Desktop]# cd /root/Downloads/
[root@localhost Downloads]# ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
kolourpaint-4.10.5-4.el7.x86_64.rpm
kolourpaint-libs-4.10.5-4.el7.x86_64.rpm
wps-office-10.1.0.5672-1.a21.x86_64.rpm
[root@localhost Downloads]# rpm -q wps-office-10.1.0.5672-1.a21.x86_64.rpmpackage
wps-office-10.1.0.5672-1.a21.x86_64.rpm is not installed
[root@localhost Downloads]# rpm -pq wps-office-10.1.0.5672-1.a21.x86_64.rpm
wps-office-10.1.0.5672-1.a21.x86_64
[root@localhost Downloads]# rpm -ql httpd # 这里只列出了一部分
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
[root@localhost Downloads]# rpm -qc httpd
[root@localhost Downloads]# rpm -qd httpd # 这里只列出了一部分
/usr/share/doc/httpd-2.4.6/ABOUT_APACHE
/usr/share/doc/httpd-2.4.6/CHANGES
/usr/share/doc/httpd-2.4.6/LICENSE
/usr/share/doc/httpd-2.4.6/NOTICE
/usr/share/doc/httpd-2.4.6/README
[root@localhost Downloads]# rpm -qa # 查看系统中安装的所有软件
[root@localhost Downloads]# rpm -qf /etc/httpd # 查看/etc/httpd这个文件属于哪个安装包
httpd-2.4.6-40.el7.x86_64
[root@localhost Downloads]# cp kolourpaint-4.10.5-4.el7.x86_64.rpm kolourpaint-4.10.5-4.el7.x86_641.rpm # 备份这个软件
[root@localhost Downloads]# rpm -Kv kolourpaint-4.10.5-4.el7.x86_641.rpm # 查看原软件状态,ok表示正常
[root@localhost Downloads]# echo hello >> kolourpaint-4.10.5-4.el7.x86_641.rpm # 改变软件内容
[root@localhost Downloads]# rpm -Kv kolourpaint-4.10.5-4.el7.x86_641.rpm # 再次检测,就会检测出被篡改
检测软件在安装或卸载过程中执行的动作,来确保软件是否安全
[root@localhost Downloads]# rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm --scripts
[root@localhost Downloads]# rpm -qp FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm --scripts
4.rpm包的拆解
rpm2cpio # 采集数据[root@localhost Desktop]# kolourpaint # 调用命令打开画图软件
模拟误删命令所在的配置文件
[root@localhost Desktop]# which kolourpaint # 查看 kolourpaint 这个进程在哪个目录里·,方便后边恢复
/usr/bin/kolourpaint
[root@localhost Desktop]# rm -fr /usr/bin/kolourpaint
[root@localhost Desktop]# kolourpaint # 再次调用命令就会失败
bash: /usr/bin/kolourpaint: No such file or directory
重新安装可以解决这个问题,但是重新安装会覆盖原有的所有文件,现在可以通过rpm包拆分的方式来解决这个问题
[root@localhost software]# cp kolourpaint-4.10.5-4.el7.x86_64.rpm /mnt # 备份这个软件包到/mnt里,在/mnt里做实验
[root@localhost software]# cd /mnt
[root@localhost mnt]# rpm2cpio kolourpaint-4.10.5-4.el7.x86_64.rpm | cpio -id #采集rpm的文件内容到/mnt目录里
3861 blocks
[root@localhost mnt]# ls
kolourpaint-4.10.5-4.el7.x86_64.rpm usr
[root@localhost mnt]# cd usr/
[root@localhost usr]# ls
bin share
[root@localhost usr]# cd bin/
[root@localhost bin]# ls
Kolourpaint
[root@localhost bin]# pwd # 找到Kolourpaint的所在地
/mnt/usr/bin
[root@localhost bin]# cp kolourpaint /usr/bin/ # 恢复到Kolourpaint的默认目录下
[root@localhost bin]# kolourpaint # 再次调用命令就又恢复了