rpm命令详解
rpm
命令是Linux系统中用于管理软件包的工具,全称为Red Hat Package Manager。以下是一些rpm
命令的详解和使用案例:
SYNOPSIS
QUERYING AND VERIFYING PACKAGES:
rpm {-q|--query} [select-options] [query-options]
rpm {-V|--verify} [select-options] [verify-options]
INSTALLING, UPGRADING, AND REMOVING PACKAGES:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ... 这个命令只会升级已经安装的软件包,如果软件包尚未安装,则不会执行任何操作
rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ...
rpm install man帮助文档选项
install-options
[--allfiles] [--badreloc] [--excludepath OLDPATH]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize] [--ignorearch] [--ignoreos]
[--includedocs] [--justdb] [--nocollections]
[--nodeps] [--nodigest] [--nosignature] [--noplugins]
[--noorder] [--noscripts] [--notriggers]
[--oldpackage] [--percent] [--prefix NEWPATH]
[--relocate OLDPATH=NEWPATH]
[--replacefiles] [--replacepkgs]
[--test]
每个选项的的解释信息
--allfiles
:安装软件包时包含所有文件,即使它们已经存在。--badreloc
:允许重新定位非可重定位的(不可移动的)软件包。--excludepath OLDPATH
:在安装时排除指定路径的文件。--excludedocs
:不安装任何文档文件。--force
:强制安装软件包,忽略大多数错误。-h, --hash
:在安装过程中显示散列标记(#)作为进度指示器。--ignoresize
:忽略磁盘空间不足的警告。--ignorearch
:忽略软件包和主机之间的架构不匹配。--ignoreos
:忽略软件包和主机之间的操作系统不匹配。--includedocs
:包含文档文件,即使全局选项设置为不安装文档。--justdb
:只更新数据库,不实际安装或卸载任何文件。--nocollections
:不安装任何软件集。--nodeps
:安装软件包时不检查依赖性。--nodigest
:在安装时不检查文件摘要。--nosignature
:在安装时不检查软件包签名。--noplugins
:不运行任何插件。--noorder
:不按依赖关系顺序安装软件包。--noscripts
:不运行软件包脚本。--notriggers
:不运行触发器脚本。--oldpackage
:允许降级软件包。--percent
:显示安装进度的百分比。--prefix NEWPATH
:将软件包安装到新的前缀路径。--relocate OLDPATH=NEWPATH
:将文件从旧路径重新定位到新路径。--replacefiles
:替换已存在的文件。--replacepkgs
:重新安装已安装的软件包。--test
:测试安装,但不实际安装软件包。
RPM select-options
[PACKAGE_NAME] [-a,--all] [-f,--file FILE]
[-g,--group GROUP] {-p,--package PACKAGE_FILE]
[--hdrid SHA1] [--pkgid MD5] [--tid TID]
[--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
[--whatprovides CAPABILITY] [--whatrequires CAPABILITY]
rpm
命令的select-options
用于指定查询的范围和方式。以下是这些选项的解释:
-
[PACKAGE_NAME]
:指定要查询的软件包名称。 -
-a
或--all
:查询所有已安装的软件包。 -
-f
或--file FILE
:查询指定文件属于哪个软件包。 -
-g
或--group GROUP
:查询属于指定组的软件包。 -
-p
或--package PACKAGE_FILE
:查询未安装的软件包文件。 -
--hdrid SHA1
:使用SHA1哈希值查询软件包。 -
--pkgid MD5
:使用MD5哈希值查询软件包。 -
--tid TID
:查询由特定事务ID安装的软件包。 -
--querybynumber HDRNUM
:使用头文件编号查询软件包。 -
--triggeredby PACKAGE_NAME
:查询由指定软件包触发的脚本。 -
--whatprovides CAPABILITY
:查询提供指定功能的软件包。 -
--whatrequires CAPABILITY
:查询需要指定功能的软件包。 -
-q
或--query
:查询一个或多个已安装的软件包。 -
-qa
:查询所有已安装的软件包。 -
-qi
:显示软件包的详细信息,如名称、版本、描述等。 -
-ql
:列出软件包中的所有文件和目录。 -
-qc
:列出软件包的配置文件。 -
-qd
:列出软件包的文档文件。 -
-qR
:列出软件包所需的依赖关系。 -
-qf
:确定系统上的文件属于哪个软件包。
以下是一些常用的rpm
查询命令的例子:
- 查询软件包是否已安装:
rpm -q package_name
- 查询系统中所有已安装的软件包:
rpm -qa
- 查看软件包的详细信息:
rpm -qi package_name
- 查询软件包的文件列表:
rpm -ql package_name
- 查询某个文件属于哪个已安装的软件包:
rpm -qf /path/to/file
卸载命令详解
rpm
命令的-e
或--erase
选项用于卸载(删除)已安装的软件包。以下是这个选项的一些常用参数及其解释:
--allmatches
:删除所有与指定名称匹配的软件包,而不仅仅是最新版本。--justdb
:只从RPM数据库中删除软件包的记录,而不删除任何文件。--nodeps
:在卸载软件包时忽略依赖性检查。--noscripts
:在卸载过程中不执行任何脚本。--notriggers
:不执行任何触发器脚本。--test
:测试卸载操作,但实际上不执行卸载。
以下是一些使用这些选项的常用方法:
-
卸载软件包:
rpm -e package_name
这个命令会卸载名为
package_name
的软件包。 -
强制卸载软件包:
rpm -e --nodeps package_name
使用
--nodeps
选项可以强制卸载软件包,即使它有依赖关系。 -
测试卸载软件包:
rpm -e --test package_name
使用
--test
选项可以测试卸载操作,但不实际执行卸载。
-F 升级系统中已安装的软件包
rpm {-F|--freshen} [install-options] PACKAGE_FILE ... 升级系统中已安装的软件包
rpm
命令中的-F
或--freshen
选项用于升级系统中已安装的软件包。如果指定的软件包版本比当前安装的版本新,则会进行升级;如果已安装的版本是最新的或更新,则不会执行任何操作。这个选项通常用于批量升级,以确保系统中的软件包保持最新状态。
以下是一些使用--freshen
选项的常用方法:
-
升级一个软件包:
rpm -Fvh package_file.rpm
这个命令会检查
package_file.rpm
是否比已安装的版本新,如果是,则进行升级。 -
使用多个安装选项升级软件包:
rpm -Fvh --replacefiles --replacepkgs package_file.rpm
使用
--replacefiles
选项可以在升级过程中替换冲突的文件,而--replacepkgs
选项允许重新安装相同版本的软件包。 -
测试升级而不实际安装:
rpm -Fvh --test package_file.rpm
使用
--test
选项可以测试升级过程,但不实际执行升级。
请注意,使用--freshen
选项时,确保你了解它的作用,并在必要时备份重要数据。如果你有其他问题或需要进一步的帮助,请告诉我!🔧
常用命令参照
-
安装软件包:
rpm -ivh package_name.rpm
这个命令会安装一个名为
package_name.rpm
的软件包。 -
升级软件包:
rpm -Uvh package_name.rpm
这个命令会升级一个已经安装的软件包。
-
只升级已安装的软件包:
rpm -F package_file.rpm
这个命令只会升级已经安装的软件包,如果软件包尚未安装,则不会执行任何操作。
-
卸载软件包:
rpm -e package_name
这个命令会卸载一个已经安装的软件包。
-
查询软件包:
rpm -q package_name
这个命令会查询一个已经安装的软件包。
-
验证软件包:
rpm -V package_name
这个命令会验证一个已经安装的软件包。
-
查询所有已安装的软件包:
rpm -qa
这个命令会列出所有已经安装的rpm包。
-
查询软件包的依赖关系:
rpm -qR package_name
这个命令会列出一个已经安装的rpm包的所有依赖包。
-
查询软件包提供的功能:
rpm -q --provides package_name
这个命令会列出一个已经安装的rpm包提供的所有功能。
-
查询软件包的文件列表:
rpm -ql package_name
这个命令会列出一个已经安装的rpm包的所有文件。
(1) Linux rpm命令查询软件包(-q、-qa、-i、-p、-l、-f、-R). https://c.biancheng.net/view/817.html.
(2) rpm常用命令汇总 -- 安装,升级,查询,验证,卸载_rpm upgrade-CSDN博客. https://blog.csdn.net/happyjacob/article/details/113486970.
(3) 如何精通 RPM 命令 - LinuxStory. https://bing.com/search?q=rpm+查询选项+解释+常用方法.
(4) RPM常用命令详解 - 给你我 - 博客园. https://www.cnblogs.com/geiwogeini/p/14240386.html.
(5) 如何精通 RPM 命令 - LinuxStory. https://linuxstory.org/how-master-rpm-command/.
(6) 参照https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html