做刷票的网站,个人网站 前置审批,全屋设计装修效果图,浅谈sns网站与流行sns网站对比文章目录一、命令介绍二、语法结构三、常用选项用于查询和检查包用于安装、升级和删除包用于执行其他功能四、命令示例#xff08;一#xff09;查询和检查包1. 查看一个已安装包的信息#xff08;版本、用途等#xff09;2. 查看与指定程序相关的所有安装文件3. 查看一个已…
文章目录一、命令介绍二、语法结构三、常用选项用于查询和检查包用于安装、升级和删除包用于执行其他功能四、命令示例一查询和检查包1. 查看一个已安装包的信息版本、用途等2. 查看与指定程序相关的所有安装文件3. 查看一个已经安装的 rpm 包的配置文件列表4.查看所有需要依赖指定 rpm 包的软件包列表5. 查看哪个包提供某一功能6. 查看安装/删除指定的软件包期间所执行的脚本7. 查询指定文件所属的软件包即查询文件或命令属于哪个软件包8. 确认一个 rpm 包的完整性9. 查询一个包是否安装10. 确认一个 rpm 包还未安装11. 检验已安装的软件包是否被修改过12. 检查系统中所有已安装的 rpm 包小心使用 13. 查看系统中所有已经安装的 rpm 包14. 查看与 MySQL 有关的已安装的软件包列表15. 查看与某个程序有关的所有已安装的软件包16. 查看一个尚未安装的 rpm 包的文件列表17. 查看一个已经安装的 rpm 包的文件列表18. 查看指定的 rpm 软件包所包含的文件19. 查看一个软件包的信息版本、用途等20. 查询哪个软件包安装提供/包含指定的程序只能查询指定的程序21. 查询哪个软件包安装包含/提供指定的文件能查询所有指定的文件22. 查看指定软件包的依赖关系查看指定软件包依赖/需要哪些功能23. 查看一个 rpm 包的修改历史二安装、升级和删除包1. 安装软件包2. 升级软件包3. 卸载 rpm 软件包4. 安装 .src.rpm 软件包5. 修复被破坏的软件包三执行其他功能1. 导入公钥数字证书2. 从一个 rpm 包运行可执行文件3. 如何在不安装的情况下获取 rpm 包中的文件五、参考文献一、命令介绍
rpm 命令是 Red Hat Package ManagerRPM软件包管理器的缩写 该命令是用于管理基于 RPM 的 Linux 的软件包的工具。基于 RPM 的 Linux 操作系统几乎所有的软件可以通过 rpm 进行安装、卸载及管理等操作。
rpm 原本是 Red Hat Linux 发行版专门用来管理各项套件的程序由于它遵循 GPL 规则且功能强大方便因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现让 Linux 易于安装升级间接提升了 Linux 的适用度。
Red Hat 于 1995 年引入了 RPM。RPM 现在是 Linux Standard Base (LSB) 中采用的包管理系统。应该注意 rpm 是操作 RPM 的主要命令而 .rpm 是 RPM 文件使用的扩展名。所以 “一个 rpm” 或 “某某 rpm” 一般是指 RPM 文件而 rpm 通常指命令。
概括的说rpm 命令包含了五种基本功能安装、卸载、升级、查询和验证。
二、语法结构
语法格式rpm [选项] [参数]
参数指定要操纵的RPM软件包。
三、常用选项
rpm 命令选项分为三组查询和检查包安装、升级和删除包以及执行其他功能。
用于查询和检查包
选项说明-a查询所有已经安装的套件即软件包-f查询拥有指定文件的套件即软件包即查询文件或命令属于哪个软件包-dDocument. 只列出文本文件本参数需配合 -l 参数使用-c只列出组态配置文件本参数需配合 -l 参数使用-iInformation. 后面如果跟着软件名没有后缀 .rpm可以查看该软件的有关信息需要配合选项 -q 才能使用-lList. 显示套件即软件包的文件列表-pPackage. 查询指定的 RPM 套件档即查询指定的RPM软件包-qQuery. 表示查询-R显示套件的关联性信息即显示软件包的依赖关系-sStatus. 显示文件状态本参数需配合-l参数使用-v笼统地显示指令执行过程-vv比较详细地显示指令执行过程便于排错-vvv更加详细地显示指令执行过程-h 或 --hash软件包安装的时候列出哈希标记和 -v 一起使用效果更好以#号显示程序执行进度-V 或 --verify 或 -y对与指定 RPM 软件包相关的文件进行校验。若无输出则表示已安装的软件没有被修改若软件被修改则会输出信关信息-Va校验所有的 RPM 软件包-? 或 --help显示帮助信息--usage显示简短的使用说明
用于安装、升级和删除包
选项说明-e 或 --erase卸载软件包-h 或 --hash套件安装时列出标记即安装软件包时列出标记显示安装进度-i 或者 --install安装指定的套件档即安装软件包-U 或 --upgrade升级指定的套件档即软件包后面接的套件若没有安装过则系统将直接安装该套件-F升级指定的套件档后面接的套件若没有安装过则该套件不会安装。升级或刷新已经安装的包--nodeps忽略依赖关系警告当要安装的 rpm 包依赖其他包时即使其他包没有安装也可以安装这个包--force强制安装即使覆盖属于其他包的文件也要安装--ignorearch忽略主机构架--test仅作测试不真正执行可用于测试安装测试卸载--replacepkgs重新安装。替换原有的安装--initdb新建RPM的数据库--rebuilddb重建RPM的数据库--percentPrint percentages as files are unpacked from the package archive.
用于执行其他功能
选项说明-b 或 -t设置包装套件的完成阶段并指定套件档即软件包的文件名称
四、命令示例
一查询和检查包
1. 查看一个已安装包的信息版本、用途等
[roothtlwk0001host ~]# rpm -qi openssh-server-8.0p1-4.el8_1.x86_64
Name : openssh-server
Version : 8.0p1
Release : 4.el8_1
Architecture: x86_64
Install Date: 2020年07月17日 星期五 09时54分09秒
Group : System Environment/Daemons
Size : 1461534
License : BSD
Signature : RSA/SHA256, 2020年02月05日 星期三 08时08分05秒, Key ID 05b555b38483c65d
Source RPM : openssh-8.0p1-4.el8_1.src.rpm
Build Date : 2020年02月05日 星期三 00时01分36秒
Build Host : x86-01.mbox.centos.org
Relocations : (not relocatable)
Packager : CentOS Buildsys bugscentos.org
Vendor : CentOS
URL : http://www.openssh.com/portable.html
Summary : An open source SSH server daemon
Description :
OpenSSH is a free version of SSH (Secure SHell), a program for logging
into and executing commands on a remote machine. This package contains
the secure shell daemon (sshd). The sshd daemon allows SSH clients to
securely connect to your SSH server.说明只能使用 -qi而且必须按这个顺序使用 -iq 还不行仅使用 -i 也不行真 tmd 奇葩已安装的软件包不能使用后缀名 .rpm否则报错。
2. 查看与指定程序相关的所有安装文件
例如查看与 MySQL 相关的所有安装文件
[roothtlwk0001host bin]# rpm -qal|grep mysql
/etc/logrotate.d/mysql
/usr/bin/mysql_install_db
/usr/bin/mysql_plugin
/usr/bin/mysql_secure_installation
/usr/bin/mysql_ssl_rsa_setup
/usr/bin/mysql_tzinfo_to_sql
/usr/bin/mysql_upgrade
/usr/bin/mysqld_pre_systemd
/usr/bin/mysqldumpslow
/usr/lib/systemd/system/mysqld.service
/usr/lib/systemd/system/mysqld.service
/usr/lib/tmpfiles.d/mysql.conf3. 查看一个已经安装的 rpm 包的配置文件列表
[roothtlwk0001host mysql]# rpm -qc mysql-community-server-5.7.31-1.el7.x86_64
/etc/logrotate.d/mysql
/etc/my.cnf4.查看所有需要依赖指定 rpm 包的软件包列表
[roothtlwk0001host mysql]# rpm -q --whatrequires mysql-community-server-5.7.31-1.el7.x86_64.rpm # mysql-community-server-5.7.31-1.el7.x86_64.rpm 是被依赖者
没有软件包需要 mysql-community-server-5.7.31-1.el7.x86_64.rpm5. 查看哪个包提供某一功能
使用 rpm 查明哪个包提供 gcl-selinux(x86-64) 功能
[ianechidna ~]$ rpm -q --whatprovides gcl-selinux(x86-64)
gcl-selinux-2.6.8-0.7.20100201cvs.fc12.x86_646. 查看安装/删除指定的软件包期间所执行的脚本
[roothtlwk0001host mysql]# rpm -q --scripts mysql-community-server-5.7.31-1.el7.x86_64.rpm7. 查询指定文件所属的软件包即查询文件或命令属于哪个软件包
[roothtlwk0001host mysql]# rpm -qf /etc/httpd/conf/httpd.conf
httpd-2.4.37-21.module_el8.2.038215b0afa8.x86_64注意这里要使用文件的绝对路径。
你可以使用命令 which 查询命令的绝对路径
[roothtlwk0001host ~]# which mysql
/usr/bin/mysql再查询该文件所属的软件包
[roothtlwk0001host ~]# rpm -qf /usr/bin/mysql
mysql-community-client-5.7.31-1.el7.x86_64你也可以把这两条命令连起来写
[roothtlwk0001host ~]# rpm -qf which mysql
mysql-community-client-5.7.31-1.el7.x86_64which mysql 这条命令是由两个“反撇号”引起来的这代表引用反引号里面的命令所产生的结果。
也可以使用如下的形式查询
[roothtlwk0001host ~]# rpm -qf $(which mysql)
mysql-community-client-5.7.31-1.el7.x86_648. 确认一个 rpm 包的完整性
[roothtlwk0001host mysql]# rpm --checksig package.rpm9. 查询一个包是否安装
[roothtlwk0001host ~]# rpm -q mysql-community-server
mysql-community-server-5.7.31-1.el7.x86_6410. 确认一个 rpm 包还未安装
[roothtlwk0001host mysql]# rpm -Vp package.rpm 11. 检验已安装的软件包是否被修改过
检查软件包 package_name 是否被修改过检查的项目包括文件尺寸、 许可、类型、所有者、群组、MD5以及最后修改时间等。
[roothtlwk0001host mysql]# rpm -V package_name 如果包没有被修改过这个命令没有输出。
12. 检查系统中所有已安装的 rpm 包小心使用
[roothtlwk0001host mysql]# rpm -Va 13. 查看系统中所有已经安装的 rpm 包
[roothtlwk0001host mysql]# rpm -qa
perl-Pod-Perldoc-3.28-396.el8.noarch
os-prober-1.74-6.el8.x86_64
biosdevname-0.7.3-2.el8.x86_64
python3-pip-wheel-9.0.3-16.el8.noarch
perl-CPAN-Meta-2.150010-396.el8.noarch建议用下面这个组合命令
[roothtlwk0001host ~]# rpm -qa | sort | less注sort 默认会按字母大小排序然后输出给命令 less 显示。
14. 查看与 MySQL 有关的已安装的软件包列表
[roothtlwk0001host bin]# rpm -qa|grep mysql
mysql-community-server-5.7.31-1.el7.x86_64
mysql-community-common-5.7.31-1.el7.x86_64
mysql57-community-release-el7-10.noarch
mysql-community-client-5.7.31-1.el7.x86_64
php-mysqlnd-7.2.24-1.module_el8.2.0313b04d0a66.x86_64
mysql-community-libs-5.7.31-1.el7.x86_6415. 查看与某个程序有关的所有已安装的软件包
例如查看已安装的与 mysql 有关的软件包名称
[roothtlwk0001host mysql]# rpm -qa | grep mysql
mysql-community-server-5.7.31-1.el7.x86_64
mysql-community-common-5.7.31-1.el7.x86_64
mysql57-community-release-el7-10.noarch
mysql-community-client-5.7.31-1.el7.x86_64
php-mysqlnd-7.2.24-1.module_el8.2.0313b04d0a66.x86_64
mysql-community-libs-5.7.31-1.el7.x86_64例如显示所有名称中包含 httpd 字样的 rpm 包
[roothtlwk0001host mysql]# rpm -qa | grep httpd
httpd-tools-2.4.37-21.module_el8.2.038215b0afa8.x86_64
httpd-filesystem-2.4.37-21.module_el8.2.038215b0afa8.noarch
centos-logos-httpd-80.5-2.el8.noarch
httpd-2.4.37-21.module_el8.2.038215b0afa8.x86_6416. 查看一个尚未安装的 rpm 包的文件列表
[roothtlwk0001host mysql]# rpm -qlp package.rpm17. 查看一个已经安装的 rpm 包的文件列表
[roothtlwk0001host mysql]# rpm -ql mysql-community-server-5.7.31-1.el7.x86_64
/etc/logrotate.d/mysql
/etc/my.cnf
/etc/my.cnf.d
/usr/bin/innochecksum
/usr/bin/lz4_decompress
/usr/bin/my_print_defaults
/usr/bin/myisam_ftdump18. 查看指定的 rpm 软件包所包含的文件
没有安装过的软件包使用如下的命令语句
[roothtlwk0001host mysql]# rpm -qlp mysql-community-libs-5.7.31-1.el7.x86_64.rpm注-p 表示后面指定具体的 rpm 包p 是 package 的首字母。
已经安装过的软件包使用如下的命令语句
[roothtlwk0001host mysql]# rpm -ql mysql-community-libs-5.7.31-1.el7.x86_64注查看已经安装过的软件包不需要选项 -p所以软件包的名称后面不要写后缀名 .rpm。
19. 查看一个软件包的信息版本、用途等
没有安装过的软件包使用如下命令语句
[roothtlwk0001host mysql]# rpm -qip package_name.rpm已经安装过的软件包使用如下命令语句
[roothtlwk0001host mysql]# rpm -qi mysql-community-libs-5.7.31-1.el7.x86_64
Name : mysql-community-libs
Version : 5.7.31
Release : 1.el7
Architecture: x86_64
Install Date: 2020年08月23日 星期日 15时46分46秒
Group : Applications/Databases
Size : 9928453
License : Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Under GPLv2 license as shown in the Description field.
Signature : DSA/SHA1, 2020年06月03日 星期三 18时07分52秒, Key ID 8c718d3b5072e1f5
Source RPM : mysql-community-5.7.31-1.el7.src.rpm
Build Date : 2020年06月02日 星期二 19时48分16秒
Build Host : siv27.no.oracle.com
Relocations : (not relocatable)
Packager : MySQL Release Engineering mysql-buildoss.oracle.com
Vendor : Oracle and/or its affiliates
URL : http://www.mysql.com/
Summary : Shared libraries for MySQL database client applications
Description :
This package contains the shared libraries for MySQL client
applications.说明只能使用 -qi而且必须按这个顺序使用 -iq 还不行奇葩已安装的软件包不能使用后缀名 .rpm否则报错。
20. 查询哪个软件包安装提供/包含指定的程序只能查询指定的程序
以下命令只适用于查询可执行的程序由哪个软件包所安装
rpm -qf which 程序名 # 返回软件包的全名
rpm -qif which 程序名 # 返回软件包的有关信息
rpm -qlf which 程序名 # 返回软件包的文件列表例如查看 mysql 是由哪个软件包安装的如下
[roothtlwk0001host mysql]# rpm -qf which mysql
mysql-community-client-5.7.31-1.el7.x86_64
[roothtlwk0001host mysql]# rpm -qf which mysqld
mysql-community-server-5.7.31-1.el7.x86_64说明 字符串 which mysql 所用的引号不是“单引号”而是键盘左上角“波浪号” ~ 下面的“捺符号”-f 表示后面需要指定文件名且必须是完整的文件路径which mysql 是一条命令语句会执行返回结果即返回指定的命令文件 mysql 的所在路径。
21. 查询哪个软件包安装包含/提供指定的文件能查询所有指定的文件
上面那个只适用于可执行的程序而下面的方法不仅可以用于可执行程序也可以用于普通的任何文件。首先你要知道这个文件名然后查询该文件的完整路径可以用 whereis 或者 which然后使用 rpm -qf 查询。
例如查询命令文件 mysql 的完整路径使用命令 which命令语句如下
[roothtlwk0001host ~]# which mysql
/usr/bin/mysql注意which 只能查询命令的所在位置不能查询非可执行文件的所在位置。
查询命令文件 mysql 的完整路径使用命令 whereis如下
[roothtlwk0001host ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz你还要判断哪个才是命令文件 mysql 的路径可以通过命令 file 查询如下
[roothtlwk0001host ~]# file /usr/bin/mysql
/usr/bin/mysql: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]afd62c3d3b2d3192af0ba4bb66bbc07a3ee3d168, with debug_info, not stripped如上查询结果所示ELF 说明是可执行的文件。
查询压缩包文件 mysql.1.gz 所在位置使用命令 whereis如下
[roothtlwk0001host ~]# whereis mysql.1.gz
mysql.1: /usr/share/man/man1/mysql.1.gz使用命令 rpm -qf 查询文件 mysql.1.gz 是哪个软件包安装的如下
[roothtlwk0001host ~]# rpm -qf /usr/share/man/man1/mysql.1.gz
mysql-community-client-5.7.31-1.el7.x86_64注意如上查询某个文件属于哪个软件包提供的需要输入该文件的完整的路径名才行。
如果你仅仅输入文件名称则会提示不存在该文件如下
[roothtlwk0001host ~]# rpm -qf mysql.q.gz
error: file /root/mysql.q.gz: No such file or directory22. 查看指定软件包的依赖关系查看指定软件包依赖/需要哪些功能
[roothtlwk0001host ~]# rpm -qR mysql-community-server-5.7.31-1.el7.x86_64
/bin/bash
/bin/sh
/bin/sh
/bin/sh注
-R 必须大写是 requires 的首字母含义是查询软件包的依赖性。如果要查询包文件而不是 RPM 数据库那么添加 -p 选项并使用完整的 RPM 文件名。
23. 查看一个 rpm 包的修改历史
[roothtlwk0001host mysql]# rpm -q --changelog mysql-community-server-5.7.31-1.el7.x86_64
* 四 9月 05 2019 Bjorn Munch bjorn.munchoracle.com - 5.7.28-1
- Add License Book, remove COPYING* 三 1月 24 2018 Balasubramanian Kandasamy balasubramanian.kandasamyoracle.com - 5.7.23-1
- Add perl modules for test subpackage* 三 1月 10 2018 Bjorn Munch bjorn.munchoracle.com - 5.7.22-1
- No longer need to remove obsoleted mysqltest man pages二安装、升级和删除包
1. 安装软件包
安装当前目录下的一个 rpm 包并显示安装相关信息
[rootlinuxcool ~]# rpm -ivh package.rpm 按绝对路径安装 rpm 包并显示安装相关信息
[rootlinuxcool ~]# rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm 安装一个 rpm 包且忽略依赖关系警告
[rootlinuxcool ~]# rpm -ivh --nodeps package.rpm 安装过程中可能出现下面的警告或者提示
... conflict with ...可能是要安装的包里有一些文件可能会覆盖现有的文件缺省时这样的情况下是无法正确安装的可以用rpm --force -i强制安装即可
... is needed by ...
... is not installed ...此包需要的一些软件你没有安装可以用rpm --nodeps -i来忽略此信息也就是说rpm -i --force --nodeps可以忽略所有依赖关系和文件问题什么包都能安装上但这种强制安装的软件包不能保证完全发挥功能。
2. 升级软件包
升级指定的软件包若没有安装则会直接安装此软件包
[rootlinuxcool ~]# rpm -U package.rpm # 更新一个rpm包但不改变其配置文件升级一个确定已经安装的软件包
[rootlinuxcool ~]# rpm -F package.rpm通常情况下我们使用 -U 选项进行更新尤其是在命令行包含 RPM 列表的情况下。这样的话就会安装未安装的包升级已经安装的包。常常使用另外两个选项 -v详细和 -h# 标志提供进度显示。下面的例子中说明了如何使用 rpm 命令更新 vim-common、vim-enhanced 和 vim-minimal 包。我们已经把 vim-common 和 vim-enhanced 包下载到根用户的主目录中而 vim-minimal 包要从一个更新镜像获取。
[rootechidna ~]# ls *.rpm
vim-common-7.2.411-1.fc12.x86_64.rpm vim-enhanced-7.2.411-1.fc12.x86_64.rpm
[rootechidna ~]# rpm -Uvh *.rpm http://mirrors.usc.edu/pub/linux/distributions\/fedora/linux/updates/12/x86_64/vim-minimal-7.2.411-1.fc12.x86_64.rpm
Retrieving http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/updates/12/x86
_64/vim-minimal-7.2.411-1.fc12.x86_64.rpm
Preparing... ########################################### [100%]1:vim-common ########################################### [ 33%]2:vim-enhanced ########################################### [ 67%]3:vim-minimal ########################################### [100%]3. 卸载 rpm 软件包
使用命令 rpm -e 包名包名可以包含版本号等信息但是不可以有后缀 .rpm比如卸载软件包 proftpd-1.2.8-1可以使用下列格式
rpm -e proftpd-1.2.8-1
rpm -e proftpd-1.2.8
rpm -e proftpd-
rpm -e proftpd不可以是下列格式
rpm -e proftpd-1.2.8-1.i386.rpm
rpm -e proftpd-1.2.8-1.i386
rpm -e proftpd-1.2
rpm -e proftpd-1当使用 rpm 删除包时如果软件包可以删除不会有任何的输出和提示但是如果试图删除其他包需要的包它不会执行删除操作您会看到以下的错误消息
rootechidna ~]# rpm -e gcl-selinux
error: Failed dependencies:gcl-selinux is needed by (installed) gcl-2.6.8-0.7.20100201cvs.fc12.x86_64这说明这个软件被其他软件需要不能随便卸载可以使用选项 --nodeps 强制卸载
rpm -e --nodeps proftpd-1.2.8-14. 安装 .src.rpm 软件包
详见《Linux 如何安装 SRPM 包》
5. 修复被破坏的软件包
RPM 包管理系统通常可以通过选项 -F 修复包但是如果删除了包中的重要文件仅仅进行更新或者使用 yum reinstall 重新安装包依旧无法解决问题那么可能需要在重新安装之前删除包。对于这种情况可能希望删除现有的拷贝并重新安装但是不希望卸载和重新安装依赖它的所有包。为此在删除包时可以使用 rpm 命令的 --nodeps 选项绕过依赖关系检查。下面的例子中删除了 vim-common 中的 /usr/bin/xxd 文件然后演示如何恢复这个包
[rootechidna ~]# rm /usr/bin/xxd
rm: remove regular file /usr/bin/xxd? y
[rootechidna ~]# # Oops! we needed that file
[rootechidna ~]# rpm -Fvh vim-common-7.2.411-1.fc12.x86_64.rpm
[rootechidna ~]# ls /usr/bin/xxd
ls: cannot access /usr/bin/xxd: No such file or directory
[rootechidna ~]# # Oh! Freshening the package didnt replace the missing file
[rootechidna ~]# rpm -e vim-common
error: Failed dependencies:vim-common 2:7.2.411-1.fc12 is needed by (installed) vim-enhanced-2:7.2.411-1.f
c12.x86_64
[rootechidna ~]# # Cant remove vim-common because vim-enhanced needs it
[rootechidna ~]# rpm -e --nodeps vim-common
[rootechidna ~]# # Bypassing the dependency check allowed removal
[rootechidna ~]# rpm -Uvh vim-common-7.2.411-1.fc12.x86_64.rpm
Preparing... ########################################### [100%]1:vim-common ########################################### [100%]
[rootechidna ~]# # Update (or install) vim-common again
[rootechidna ~]# ls /usr/bin/xxd
/usr/bin/xxd
[rootechidna ~]# # And /usr/bin/xxd is back注意在安装 RPM 时也可以绕过依赖关系检查但是这通常不是好做法。
三执行其他功能
1. 导入公钥数字证书
[roothtlwk0001host mysql]# rpm --import /media/cdrom/RPM-GPG-KEY2. 从一个 rpm 包运行可执行文件
rpm2cpio package.rpm | cpio --extract --make-directories *bin*说明--extract 表示提取--make-directories 表示按软件包内的文件原有的路径*bin* 执行名称中含有关键字 bin 的文件即可执行文件。
3. 如何在不安装的情况下获取 rpm 包中的文件
使用命令工具 rpm2cpio 和 cpio对 rpm 包进行提取包含解包、解压过程。
rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories说明 参数 -i 和 --extract 相同表示提取文件-d 和 --make-directory 相同表示根据包中文件原来的路径建立目录-m 表示保持文件的更新时间-v 表示指示执行进程。
五、参考文献
线上工具