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

posted @ 2024-03-09 23:48  hackintosh  阅读(59)  评论(0编辑  收藏  举报