Skip to main content

Rpm - Linux命令 - Unix命令

4 7 Linux常用命令 网络命令 (六月 2026)

4 7 Linux常用命令 网络命令 (六月 2026)
Anonim

Linux / Unix命令:rpm

名称

rpm - RPM包管理器

概要

查询和验证包装:

--query 选择选项 查询选项

-V 选择选项 验证选项

- 进口 PUBKEY ……

-K --nosignature --nodigest PACKAGE_FILE ……

安装,升级和删除包装:

-一世 安装选项 PACKAGE_FILE ……

- 升级 安装选项 PACKAGE_FILE ……

-F 安装选项 PACKAGE_FILE ……

-e --allmatches --nodeps --noscripts --notriggers --repackage - 测试 包裹名字 …

杂:

--initdb

--addsign PACKAGE_FILE ……

--showrc

--setugids 包裹名字 …

选择选项

包裹名字 -a, - 所有 -f, - 文件 文件 -g, - 组 组 {-p, - 包 PACKAGE_FILE --fileid MD5 --hdrid SHA1 --pkgid MD5 --tid TID --querybynumber HDRNUM --triggeredby 包裹名字 --whatprovides 能力 --whatrequires 能力

查询选项

--changelog -c, - configfiles -d, - 和DocFiles - 倾倒 --filesbypkg -i, - 信息 - 持续 -l, - 列表 --provides --qf, - queryformat QUERYFMT -R, - 需要 --scripts -s, - 状态 --triggers, - triggerscripts

验证选项

--nodeps - 没有文件 --noscripts --nodigest --nosignature --nolinkto --nomd5 --nosize --nouser --nogroup --nomtime --nomode --nordev

安装选项

- 援助 - 所有的文件 --badreloc --excludepath OLDPATH --excludedocs - 力 -h, - 哈希 --ignoresize --ignorearch --ignoreos --includedocs --justdb --nodeps --nodigest --nosignature --nosuggest --noorder --noscripts --notriggers --oldpackage - 百分 - 字首 NEWPATH --relocate OLDPATH = NEWPATH --repackage --replacefiles --replacepkgs - 测试

描述

是一个强大的包管理器,可用于构建,安装,查询,验证,更新和删除单个软件包。一个 包含用于安装和擦除存档文件的文件和元数据的存档。元数据包括帮助程序脚本,文件属性和有关程序包的描述性信息。 有两种类型:二进制包,用于封装要安装的软件,以及源包,包含生成二进制包所需的源代码和配方。

必须选择以下基本模式之一:询问, 校验, 签名检查,安装/升级/梳洗, 卸载, 初始化数据库, 重建数据库, 辞职, 添加签名, 设置所有者/组, 显示查询标记,和显示配置.

常规选项

这些选项可用于所有不同的模式。

-?, - 救命

打印更长时间的使用消息然后正常。

- 版

打印包含版本号的单行 正在使用。

- 安静

尽可能少打印 - 通常只显示错误消息。

-v

打印详细信息 - 通常会显示例行进度消息。

-vv

打印大量丑陋的调试信息。

--rcfile FILELIST

冒号中的每个文件都分开了 FILELIST 按顺序读取 有关配置信息。只有列表中的第一个文件必须存在,并且波浪号将扩展为值$ HOME。默认值 FILELIST 是 的/ usr / lib / rpm的/ rpmrc中 : 的/ usr / lib / rpm的/红帽/ rpmrc中 : 〜/ .rpmrc .

- 管 CMD

管道输出 对命令 CMD .

--dbpath 目录

使用数据库 目录 rathen比默认路径 的/ var / lib / rpm的

- 根 目录

使用以root为根的文件系统树 目录 适用于所有业务。请注意,这意味着数据库内 目录 将用于依赖性检查和任何scriptlet(例如%后 如果安装,或%准备 如果建立,一个包)将在chroot(2)之后运行 目录 .

安装和升级选项

rpm安装命令的一般形式是

- 安装 安装选项 PACKAGE_FILE ……

这将安装一个新包。

rpm升级命令的一般形式是

- 升级 安装选项 PACKAGE_FILE ……

这会将当前安装的软件包升级或安装到较新版本。这与安装相同,除了在安装新软件包后删除软件包的所有其他版本。

-F 安装选项 PACKAGE_FILE ……

这将升级包,但仅限于当前存在的早期版本。该 PACKAGE_FILE 可以指定为FTP 要么HTTP URL,在这种情况下,包将在安装之前下载。看到FTP/HTTP OPTIONS 有关的信息内部FTPHTTP 客户支持。

- 援助

在需要时将建议的包添加到事务集。

- 所有的文件

安装或升级包中的所有missingok文件,无论它们是否存在。

--badreloc

用于--relocate,允许在所有文件路径上重定位,而不仅仅是那些 OLDPATH 包含在二进制包重定位提示中。

--excludepath OLDPATH

不要安装名称以。开头的文件 OLDPATH .

--excludedocs

不要安装任何标记为文档的文件(包括手册页和texinfo文档)。

- 力

与使用相同--replacepkgs, --replacefiles,和--oldpackage.

-h, - 哈希

解压缩包归档时打印50个哈希标记。使用-v | --verbose 为了更好的显示。

--ignoresize

安装此软件包之前,请不要检查安装文件系统是否有足够的磁盘空间

--ignorearch

即使二进制包和主机的体系结构不匹配,也允许安装或升级。

--ignoreos

即使二进制包和主机的操作系统不匹配,也允许安装或升级。

--includedocs

安装文档文件。这是默认行为。

--justdb

仅更新数据库,而不是文件系统。

--nodigest

阅读时不要验证包或标题摘要。

--nosignature

阅读时不要验证包裹或标题签名。

--nodeps

在安装或升级软件包之前,请勿进行依赖性检查。

--nosuggest

不建议提供缺失依赖的包。

--noorder

不要为安装包重新排序。通常会对包列表进行重新排序以满足依赖性。

--noscripts

--nopre

--nopost

--nopreun

--nopostun

不要执行同名的scriptlet。该--noscripts 选项相当于

--nopre --nopost --nopreun --nopostun

并关闭相应的执行%的预, %后, %preun,和%postun的scriptlet(一个或多个)。

--notriggers

--notriggerin

--notriggerun

--notriggerpostun

不要执行指定类型的任何触发器scriptlet。该--notriggers 选项相当于

--notriggerin --notriggerun --notriggerpostun

并关闭相应的执行%triggerin, %triggerun,和%triggerpostun 的scriptlet(一个或多个)。

--oldpackage

允许升级以使用较旧的软件包替换较新的软件包。

- 百分

打印文件的百分比从包存档中解压缩。这是为了制作 易于从其他工具运行。

- 字首 NEWPATH

对于可重定位的二进制包,请将包重定位提示中以安装前缀开头的所有文件路径转换为 NEWPATH .

--relocate OLDPATH = NEWPATH

对于可重定位的二进制包,请翻译以…开头的所有文件路径 OLDPATH 在包重定位提示中 NEWPATH 。如果有多个,可以重复使用此选项 OLDPATH 包裹中的物品将被重新安置。

--repackage

在擦除之前重新打包文件。先前安装的包将根据宏命名%_repackage_name_fmt 并将在宏指定的目录中创建%_repackage_dir (默认值为 / var / tmp中 ).

--replacefiles

即使它们替换了已安装的其他软件包中的文件,也要安装软件包。

--replacepkgs

即使其中某些软件包已安装在此系统上,也请安装软件包。

- 测试

不要安装软件包,只需检查并报告潜在的冲突。

删除选项

rpm擦除命令的一般形式是

-e --allmatches --nodeps --noscripts --notriggers --repackage - 测试 包裹名字 …

也可以使用以下选项:

--allmatches

删除匹配的所有版本的软件包 包裹名字 。通常,如果发出错误 包裹名字 匹配多个包。

--nodeps

在卸载软件包之前,请不要检查依赖项。

--noscripts

--nopreun

--nopostun

不要执行同名的scriptlet。该--noscripts 包擦除期间的选项相当于

--nopreun --nopostun

并关闭相应的执行%preun,和%postun 的scriptlet(一个或多个)。

--notriggers

--notriggerun

--notriggerpostun

不要执行指定类型的任何触发器scriptlet。该--notriggers 选项相当于

--notriggerun --notriggerpostun

并关闭相应的执行%triggerun,和%triggerpostun 的scriptlet(一个或多个)。

--repackage

在擦除之前重新打包文件。先前安装的包将根据宏命名%_repackage_name_fmt 并将在宏指定的目录中创建%_repackage_dir (默认值为 / var / tmp中 ).

- 测试

不要真的卸载任何东西,只需通过动议。与…结合使用-vv 调试选项。

查询选项

rpm查询命令的一般形式是

--query 选择选项 查询选项

您可以指定打印包信息的格式。为此,请使用

--qf | --queryformat QUERYFMT

选项,然后是 QUERYFMT 格式字符串。查询格式是标准的修改版本的printf(3) 格式。格式由静态字符串组成(可能包括换行符,制表符和其他特殊字符的标准C字符转义)和的printf(3) 类型格式化程序。如 已经知道要打印的类型,但是必须省略类型说明符,并替换为要打印的标题标记的名称,由{} 字符。标签名称是大小写的,并且是领先的RPMTAG_ 也可以省略标签名称的一部分。

可以通过跟随标记来请求替代输出格式: typetag 。目前,支持以下类型:

:盔甲

用ASCII装甲包裹公钥。

:BASE64

使用base64编码二进制数据。

:日期

使用strftime(3)“%c”格式。

:天

使用strftime(3)“%a%b%d%Y”格式。

:depflags

格式依赖标志。

:FFLAGS

格式化文件标志。

:十六进制

格式为十六进制。

:八进制

八进制格式。

:烫发

格式化文件权限。

:shescape

转义单引号以在脚本中使用。

:triggertype

显示触发器后缀。

例如,要仅打印查询的包的名称,您可以使用%{名称} 作为格式字符串。要在两列中打印包名称和分发信息,您可以使用%-30 {NAME}%{DISTRIBUTION}. 将打印一个列表,列出它在调用时所知道的所有标签--querytags 论点。

查询选项有两个子集:包选择和信息选择。

包装选择选项:

包裹名字

查询已安装的包命名 包裹名字 .

-a, - all

查询所有已安装的包。

-f, - file 文件

查询包拥有 文件 .

--fileid MD5

包含给定文件标识符的查询包,即 MD5 摘要文件内容。

-g, - group

查询包的组 组 .

--hdrid SHA1

包含给定标头标识符的查询包,即 SHA1 不可变标题区域的摘要。

-p, - 包装 PACKAGE_FILE

查询(卸载)包 PACKAGE_FILE 。该 PACKAGE_FILE 可以指定为FTP 要么HTTP 样式URL,在这种情况下将下载和查询包头。看到FTP / HTTP选项 有关的信息内部FTPHTTP 客户支持。该 PACKAGE_FILE 参数(如果不是二进制包)将被解释为ASCII包清单。允许使用注释,以“#”开头,​​并且包清单文件的每一行都可以包含空格分隔的glob表达式,包括带有远程glob表达式的URL,这些表达式将扩展为替换代替包清单的路径额外 PACKAGE_FILE 查询的参数。

--pkgid MD5

包含给定包标识符的查询包,即 MD5 合并标头和有效负载内容的摘要。

--querybynumber HDRNUM

查询 HDRNUM 数据库直接输入;这仅适用于调试。

--specfile SPECFILE

解析和查询 SPECFILE 好像是一个包裹。虽然并非所有信息(例如文件列表)都可用,但这种类型的查询允许使用rpm从spec文件中提取信息,而无需编写specfile解析器。

--tid TID

查询具有给定的包 TID 交易标识符。 unix时间戳目前用作事务标识符。在单个事务中安装或擦除的所有程序包都具有公共标识符。

--triggeredby 包裹名字

查询由包触发的包 包裹名字 .

--whatprovides 能力

查询提供的所有包 能力 能力。

--whatrequires 能力

查询所有需要的包 能力 为了正常运作。

包装查询选项:

--changelog

显示包的更改信息。

-c, - configfiles

仅列出配置文件(暗示-l).

-d, - docfiles

仅列出文档文件(暗示-l).

- 倾倒

转储文件信息如下:

路径大小mtime md5sum模式所有者组isconfig isdoc rdev符号链接

此选项必须至少与其中一个一起使用-l, -C, -d.

--filesbypkg

列出每个选定包中的所有文件。

-i, - info

显示包信息,包括名称,版本和描述。这使用了--queryformat 如果指定了一个。

- 持续

按安装时间对软件包列表进行排序,以使最新软件包位于顶部。

-l, - list

列出包中的文件。

--provides

列出此程序包提供的功能。

-R, - 需要

列出此程序包所依赖的程序包。

--scripts

列出用作安装和卸载过程一部分的特定于程序包的scriptlet。

-s, - state

显示 状态 包中的文件(暗示-l)。每个文件的状态是其中之一 正常 , 未安装 , 要么 更换 .

--triggers, - striggerscripts

显示包中包含的触发器脚本(如果有)。

验证选项

rpm验证命令的一般形式是

-V 选择选项 验证选项

验证程序包会将有关程序包中已安装文件的信息与有关从存储在rpm数据库中的程序包元数据中获取的文件的信息进行比较。除其他外,验证比较每个文件的大小,MD5总和,权限,类型,所有者和组。显示任何差异。未从软件包安装的文件,例如,使用“安装时排除的文档文件”--excludedocs“选项,将被默默忽略。

包选择选项与包查询相同(包括包清单文件作为参数)。验证模式独有的其他选项包括:

--nodeps

不验证包的依赖性。

--nodigest

阅读时不要验证包或标题摘要。

- 没有文件

不验证包文件的任何属性。

--noscripts

不要执行%verifyscript scriptlet(如果有的话)。

--nosignature

阅读时不要验证包裹或标题签名。

--nolinkto

--nomd5

--nosize

--nouser

--nogroup

--nomtime

--nomode

--nordev

不要验证相应的文件属性。

输出格式为8个字符的字符串,可能的属性标记:

C %配置 配置文件。 d %DOC 文档文件。 G %鬼 文件(即文件内容不包含在包有效负载中)。 升 %执照 许可证文件。 R 自述% 自述文件。

从包头,后跟文件名。 8个字符中的每一个表示文件的属性与数据库中记录的那些属性的值的比较结果。单一“.“(句号)表示考试通过,而单一”?“(问号)表示无法执行测试(例如文件权限阻止读取)。否则,(助记符为emoldened)字符表示相应的失败 - 校验 测试:

小号 文件 小号ize不同 中号 中号ode不同(包括权限和文件类型) 5 MD5 总和不同 d d主要/次要号码不匹配 大号大号墨水(2)路径不匹配 ü ü服务所有权不同 G Group所有权不同 ŤŤ我不同

数字签名和最终验证

rpm数字签名命令的一般形式是

- 进口 PUBKEY ……

{--checksig} --nosignature --nodigest PACKAGE_FILE ……

--checksig 选项检查包含的所有摘要和签名 PACKAGE_FILE 确保包装的完整性和原产地。请注意,只要读取包,就会验证签名--checksig 用于验证与包关联的所有摘要和签名。

没有公钥,无法验证数字签名。可以添加一个ascii装甲公钥 数据库使用 - 进口。导入的公钥在标题中携带,并且密钥环管理与包管理完全相同。例如,所有当前导入的公钥都可以通过以下方式显示:

rpm -qa gpg-pubkey *

导入时,可以通过查询显示有关特定公钥的详细信息。以下是有关Red Hat GPG / DSA密钥的信息:

rpm -qi gpg-pubkey-db42a60e

最后,公共密钥可以在导入后像包一样被擦除。以下是删除Red Hat GPG / DSA密钥的方法

rpm -e gpg-pubkey-db42a60e

签名包

--addsign | --resign PACKAGE_FILE ……

两者都有--addsign - 辞职 options为每个包生成并插入新签名 PACKAGE_FILE 给定,替换任何现有的签名。出于历史原因,有两种选择,目前的行为没有差异。

使用GPG签署包裹

为了使用GPG签名包, 必须配置为运行GPG并能够使用适当的密钥找到密钥环。默认情况下, 使用与GPG相同的约定来查找密钥环,即$ GNUPGHOME 环境变量。如果您的密钥环不在GPG预期的位置,则需要配置宏%_gpg_path 是要使用的GPG钥匙圈的位置。

为了与旧版本的GPG,PGP和rpm兼容,只应配置V3 OpenPGP签名包。可以使用DSA或RSA验证算法,但DSA是首选。

如果您希望能够签署自己创建的包,则还需要创建自己的公钥和密钥对(请参阅GPG手册)。您还需要配置

%_签名

签名类型。现在只支持gpg和pgp。

%_gpg_name

要用于对包进行签名的“用户”的名称。

例如,为了能够使用GPG作为用户签名包 “John Doe < [email protected] >' 来自位于的钥匙圈 /etc/rpm/.gpg 使用可执行文件 在/ usr / bin中/ GPG 你会包括

%_signature gpg%_gpg_path /etc/rpm/.gpg% _gpg_name John Doe %_gpgbin / usr / bin / gpg

在宏配置文件中。使用 的/ etc /转/宏 对于每系统配置和 〜/ .rpmmacros 对于每用户配置。

REBUILD DATABASE OPTIONS

rpm rebuild数据库命令的一般形式是

--rebuilddb -v --dbpath 目录 - 根 目录

使用--initdb 创建一个新的数据库,使用--rebuilddb 从已安装的包标头重建数据库索引。

SHOWRC

命令

--showrc

显示值 将用于当前设置的所有选项 rpmrc中 和 宏 配置文件。

FTP / HTTP选项

可以充当FTP和/或HTTP客户端,以便可以从Internet查询或安装包。用于安装,升级和查询操作的包文件可以指定为FTP 要么HTTP样式网址:

FTP://用户名:密码@ HOST:PORT /路径/到/ package.rpm

如果:密码 部分被省略,将提示密码(每个用户/主机名对一次)。如果省略用户和密码,则匿名FTP 用来。在所有情况下,被动(PASV)FTP 转移执行。

允许以下选项与ftp URL一起使用:

--ftpproxy 主办

主人 主办 将用作所有ftp传输的代理服务器,允许用户通过使用代理系统的防火墙机器进行ftp。也可以通过配置宏来指定此选项%_ftpproxy.

--ftpport 主办

TCP 港口 用于代理ftp服务器上的ftp连接而不是默认端口的数字。也可以通过配置宏来指定此选项%_ftpport.

允许使用以下选项HTTP 网址:

--httpproxy 主办

主人 主办 将用作所有人的代理服务器HTTP 传输。也可以通过配置宏来指定此选项%_httpproxy.

--httpport 港口

TCP 港口 用于的号码HTTP 代理http服务器上的连接而不是默认端口。也可以通过配置宏来指定此选项%_httpport.

遗产问题

执行rpmbuild

rpm的构建模式现在驻留在 在/ usr / bin中/的rpmbuild 可执行文件。虽然下面的popt别名提供的遗留兼容性已足够,但兼容性并不完美;因此,从rpm中删除了通过popt别名建立模式兼容性。安装的rpmbuild 包,看看的rpmbuild(8)所有的文件 以前在此处记录的构建模式(8).

添加以下行 在/ etc / POPT 如果你想继续调用的rpmbuild 来自命令行:

rpm exec --bp rpmb -bp rpm exec --bc rpmb -bc rpm exec --bi rpmb -bi rpm exec --bl rpmb -bl rpm exec --ba rpmb -ba rpm exec --bb rpmb -bb rpm exec --bs rpmb -bs rpm exec --tp rpmb -tp rpm exec --tc rpmb -tc rpm exec --ti rpmb -ti rpm exec --tl rpmb -tl rpm exec --ta rpmb -ta rpm exec - tb rpmb -tb rpm exec --ts rpmb -ts rpm exec --rebuild rpmb --rebuild rpm exec --recompile rpmb --recompile rpm exec --clean rpmb --clean rpm exec --rmsource rpmb --rmsource rpm exec --rmspec rpmb --rmspec rpm exec --target rpmb --target rpm exec --short-circuit rpmb --short-circuit

也可以看看

POPT(3), rpm2cpio(8), 的rpmbuild(8),

http://www.rpm.org/ http://www.rpm.org/>

重要: 使用 人 命令( % 人 )查看特定计算机上如何使用命令。