——查看、安装、卸载、提取安装包一文掌握)
前言在之前的文章中我介绍了在银河麒麟桌面系统中dpkg包管理工具的一些常见用法。而银河麒麟服务器版R系采用的是rpm包管理工具两者虽然作用相似但命令有所不同。本文结合日常运维和排障经验总结 RPM 命令最常用的操作并给出实际示例希望能够帮助大家快速掌握 RPM 包管理工具的用法目录一、RPM 简介二、安装 RPM 包三、升级 RPM 包四、卸载 RPM 包五、查询 RPM 包信息六、查看 RPM 包包含哪些文件七、查看软件属于哪个 RPM 包八、查看 RPM 包依赖关系九、查看 RPM 安装脚本十、不安装提取 RPM 包内容类似 dpkg -x十一、常见注意事项十二、总结一、RPM 简介RPMRed Hat Package Manager是一种软件包管理工具广泛应用于银河麒麟服务器版R系openEulerCentOSRed Hat Enterprise LinuxRHELRocky LinuxAlmaLinuxRPM 能够完成软件包的安装升级卸载查询校验提取安装包内容二、安装 RPM 包安装软件rpm -ivh package.rpm参数说明参数说明-iinstall安装-v显示详细过程-h显示安装进度例如rpm -ivh nginx-1.24.0.rpm如果提示依赖缺失可以使用前提是配有安装源yum install package.rpm或者dnf install package.rpm自动解决依赖。三、升级 RPM 包升级已有软件rpm -Uvh package.rpm例如rpm -Uvh openssh.rpm如果系统没有安装该软件也会直接安装。四、卸载 RPM 包先查看软件是否安装rpm -qa | grep nginx卸载rpm -e nginx如果有依赖关系不建议使用rpm -e --nodeps nginx--nodeps会忽略依赖可能导致其他软件无法正常运行仅建议在特殊排障场景使用。五、查询 RPM 包信息1、查看是否安装rpm -q nginx2、查看所有已安装软件rpm -qa配合 greprpm -qa | grep openssh3、查看软件详细信息rpm -qi nginx输出示例Name : nginx Version : 1.24.0 Release : 1 Architecture: x86_64 Install Date: ... Summary : High Performance Web Server六、查看 RPM 包包含哪些文件很多时候拿到一个 RPM 包我们想知道里面有哪些文件而不安装。查看文件列表rpm -qpl package.rpm例如rpm -qpl nginx.rpm输出类似/etc/nginx/ /usr/sbin/nginx /usr/share/doc ...七、查看某个文件属于哪个 RPM 包例如rpm -qf /usr/bin/bash输出bash-5.1-6.x86_64排障过程中非常实用。八、查看 RPM 包依赖关系查看安装包依赖rpm -qpR package.rpm例如rpm -qpR nginx.rpm输出类似libc.so.6 libpthread.so.0 libssl.so ...九、查看 RPM 安装脚本RPM 包通常会包含安装前、安装后、卸载前、卸载后的脚本。查看rpm -qp --scripts package.rpm例如rpm -qp --scripts nginx.rpm这对于分析软件安装过程和排障非常有帮助。十、不安装提取 RPM 包内容类似 dpkg -x在 Debian 系中通过以下命令可以直接解压软件包dpkg -x package.deb extract_dirRPM 没有完全相同的命令但可以通过rpm2cpio cpio实现。方法一rpm2cpio推荐创建目标目录mkdir /tmp/extract cd /tmp/extract执行rpm2cpio /path/to/package.rpm | cpio -idmv参数说明参数作用-i提取文件-d自动创建目录-m保留文件时间-v显示详细信息例如mkdir /home/kylin/rpm_extract cd /home/kylin/rpm_extract rpm2cpio /home/kylin/packages/kernel.rpm | cpio -idmv解压完成后rpm_extract/ ├── etc/ ├── usr/ ├── lib64/ └── ...整个过程不会安装 RPM只是将安装包内容提取到指定目录非常适合查看程序文件提取配置文件分析安装包驱动排障方法二使用 bsdtar银河麒麟服务器系统已自带bsdtar -xf package.rpm -C /tmp/extract十一、常见注意事项1、不要强制忽略依赖安装例如rpm -ivh --nodeps package.rpm虽然可以安装成功但可能导致软件运行异常。2、不要随意使用 --forcerpm -ivh --force package.rpm可能覆盖已有文件建议确认影响后再使用。3、查看安装包内容优先使用 rpm -qpl如果只是想确认安装包包含哪些文件建议先使用rpm -qpl package.rpm无需解压也不会安装。4、分析安装包时推荐 rpm2cpio对于驱动、内核模块、调试安装脚本等场景推荐使用rpm2cpio package.rpm | cpio -idmv功能与 Debian 系统中的dpkg -x基本一致。十二、RPM 与 dpkg 常用命令对比Debian/UbuntuRPM 系统dpkg -irpm -ivhdpkg -rrpm -edpkg -lrpm -qadpkg -Lrpm -qldpkg -Irpm -qpidpkg -crpm -qpldpkg -xrpm2cpio cpio总结RPM 是银河麒麟服务器系统R系中最基础的软件包管理工具熟练掌握其常用命令能够大幅提升日常运维和故障排查效率。本文介绍了 RPM 最常见的使用方法包括软件安装、升级、卸载、查询、依赖分析、脚本查看以及不安装提取 RPM 包内容等操作。其中rpm2cpio cpio可以实现类似dpkg -x的功能非常适合分析安装包和排查问题。