[转]rpm命令选项中文说明

rpm命令选项中文说明。
一、大纲
查询与校验包:

引用
    rpm {-q|–query} [select-options] [query-options]
    rpm {-V|–verify} [select-options] [verify-options]
    rpm –import PUBKEY …
    rpm {-K|–checksig} [–nosignature] [–nodigest]
        PACKAGE_FILE …

安装、升级和删除包:

引用
    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] [–nodeps] [–noscripts]
        [–notriggers] [–repackage] [–test] PACKAGE_NAME …

其它使用方法:

引用
    rpm {–initdb|–rebuilddb}
    rpm {–addsign|–resign} PACKAGE_FILE …
    rpm {–querytags|–showrc}
    rpm {–setperms|–setugids} PACKAGE_NAME …

select选项

引用
     [PACKAGE_NAME] [-a,–all] [-f,–file FILE]
     [-g,–group GROUP] {-p,–package PACKAGE_FILE]
     [–fileid MD5] [–hdrid SHA1] [–pkgid MD5] [–tid TID]
     [–querybynumber HDRNUM] [–triggeredby PACKAGE_NAME]
     [–whatprovides CAPABILITY] [–whatrequires CAPABILITY]

query选项

引用
     [–changelog] [-c,–configfiles] [-d,–docfiles] [–dump]
     [–filesbypkg] [-i,–info] [–last] [-l,–list]
     [–provides] [–qf,–queryformat QUERYFMT]
     [-R,–requires] [–scripts] [-s,–state]
     [–triggers,–triggerscripts]

verify选项

引用
     [–nodeps] [–nofiles] [–noscripts]
     [–nodigest] [–nosignature]
     [–nolinkto] [–nomd5] [–nosize] [–nouser]
     [–nogroup] [–nomtime] [–nomode] [–nordev]

install选项

引用
     [–aid] [–allfiles] [–badreloc] [–excludepath OLDPATH]
     [–excludedocs] [–force] [-h,–hash]
     [–ignoresize] [–ignorearch] [–ignoreos]
     [–includedocs] [–justdb] [–nodeps]
     [–nodigest] [–nosignature] [–nosuggest]
     [–noorder] [–noscripts] [–notriggers]
     [–oldpackage] [–percent] [–prefix NEWPATH]
     [–relocate OLDPATH=NEWPATH]
     [–repackage] [–replacefiles] [–replacepkgs]
     [–test]

说明:
    rpm是一个强有力的包管理工具,它可以用于建造、安装、查询、检验、更新和删除个别的软件包。文件包由文件的档案组成且元数据过去常用于安装和删除存档文件。元数据包括帮助角本、文件属性和关于这个包的可描述性信息。包通常有两个变体:二进制包,用于压缩软件的安装;另一个是源程序包,包括原代码和产生二进制包的的方法说明。
    必须选择下面的基本模式:Query, Verify,  Signature  Check, Install/Upgrade/Freshen, Uninstall, Initialize Database, Rebuild Database, Resign, Add Signature, Set Owners/Groups, Show Querytags, and Show Configuration。

二、一般选项
那些选项可以用于所有的不同的模式中。

引用
-?, –help
       正常情况下输出使用方法。
–version
       输出包括目前所使用的rpm版本数据的单行。
–quiet
       输出尽可能少-正常情况下,如果有错误出现,仅输出错误。
-v     输出详细信息-正常的常规的进程信息。
-vv    输出很多的调试信息。
–rcfile FILELIST
     第一个在FILELIST中由冒号区分的文件将被rpm作为配置信息读出。在列表中的第一个文件必须存在,且tildes将被写入到$HOME的值中。默认的FILELIST is /usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:~/.rpmrc。
–pipe CMD
     rmp到命令CMD的输出管道。
–dbpath DIRECTORY
     在DIRECTORY中数据库而不是使用默认的路径/var/lib/rpm。
–root DIRECTORY
     使用文件系统树为所有操作在DIRECTORY进行登录(rooted)!注意这意味着在DIRECTORY内的数据库将对所有的依赖的检测和任何角本使用 (例如:在一个包中%post安装了或%prep已经建立),将在一个chroot(2)之后运行并赋给DIRECTORY。

安装和更新选项:
rpm安装的通用命令如下:

rpm {-i|–install} [install-options] PACKAGE_FILE …

Rpm升级的通用命令如下:

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

升级或安装包文件通常是安装一个新的版本。这同安装一样,不同之外仅在于在新包安装之前别的版本的包已经被删除。

rpm {-F|–freshen} [install-options] PACKAGE_FILE …

这将会升级包,但条件是其早期的版本已经存在。PACKAGE_FILE被指定为一个ftp或http的URL,那么在安装之前这个包将会被下载。参见FTP/HTTP选项。

引用
–aid  在必要的时候为交易集增加暗示包。
–allfiles
    安装或升级所有的在包中不正确的文件,不管它们是否存在。
–badreloc
     使用此选项,允许在所有的文件路径中重新定位,不仅是那些包含在二进制包中重定位的hint(s)中的那些OLDPATH.
–excludepath OLDPATH
     不安装那些名字在OLDPATH中的文件。
–excludedocs
     不安装那些文档文件(那些man页和texinfo文档)。
–force
     与使用—replacepkgs、–replacefiles和—oldpackage一样。
-h, –hash
     在被有效的解开时输出50个信息符。使用-v|–verbose可以优选显示。
–ignoresize
     在安装包之前不检测mount的文件系统的空间是否够。
–ignorearch
     即使二进制包的结构和主机不符也进行安装或升级。
–ignoreos
     即使二进制文件名的操作系统与主机不符也允许进行升级和安装。
–includedocs
     安装文档,这是默认属性。
–justdb
     仅更新数据库而不更新文件系统。
–nodigest
     在读时不检验包或包头的摘要。
–nosignature
     当读时不检测包或包头的签名。
–nodeps
     在安装或升级一个包之前不进行一个依赖性的检测。
–nosuggest
     不建议包提供一个不可少的信赖。
–noorder
      不为安装订制包。正常情况下,包列表将已经订制完毕。
–noscripts
–nopre
–nopost
–nopreun
–nopostun
    不执行同名的角本。–noscripts选项与–nopre –nopost –nopreun –nopostun相同。并且关闭相应的%pre、%post,、%preun和%postun角本的执行。
–notriggers
–notriggerin
–notriggerun
–notriggerpostun
    不执行指定类型的触发角本。–notriggers选项与–notriggerin –notriggerun –notriggerpostun含义相同。且关闭了相应的%triggerin、%triggerun和%triggerpostun角本。
–oldpackage
     允许使用旧包替换或“升级”一个新的包。
–percent
     在解包时输出文件解包的百分比。
–prefix NEWPATH
     对于可重定位的二进制包,翻译在包重定位线索中以安装前缀开头的文件给NEWPATH.。
–relocate OLDPATH=NEWPATH
     针对重定位的二进制包,翻译在包重定位线索中以OLDPATH开头的文件给NEWPATH。如果在包中的几个OLDPATH被重新装载,选项可以重复使用。
–repackage
     在删除之前重新打包文件。先前安装的包将由宏%_repackage_name_fmt指定,且其创建目录也由宏%_repackage_dir指定(默认值是/var/tmp)。
–replacefiles
     安装包,即使他们已经从别的地方已经安装的包中替换了文件。
–replacepkgs
     完全安装包,即使其中的一些文件已经在系统中安装完成。
–test  不安装包,仅仅简单检测或报告潜在的冲突。

删除选项:
删除格式的rpm命令是:

rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers]
[–repackage] [–test] PACKAGE_NAME …

下面的选项也可以使用:

引用
–allmatches
    删除所有那些包匹配PACKAGE_NAME的版本。如果PACKAGE_NAME有多个匹配,正常情况下将有一个错误说明。
–nodeps
     在没有安装包之前,不检测依赖关系。
–noscripts
–nopreun
–nopostun
     不执行同名角本。–noscripts、–nopreun –nopostun含义相同。关闭%preun、%postun角本的响应。
–notriggers
–notriggerun
–notriggerpostun
     不执行任何指定类型的触发器角本。–notriggers、–notriggerun、 –notriggerpostun含义相同。同时关闭%triggerun、%triggerpostun角本响应。
–repackage
     在删除之前重新打包文件。先前安装的包将由宏%_repackage_name_fmt指定,且其创建目录也由宏%_repackage_dir指定(默认值是/var/tmp)。
–test  不真的卸载任何东西, 仅仅是经历一下这个动作。与-vv选项联合使用。

查询选项:
rpm查询选项的通用格式:

rpm {-q|–query} [select-options] [query-options]

    可以指定包信息被打印的格式,如果想做这些,可以使用下面的方式:

引用
–qf|–queryformat QUERYFMT

选项,后边是格式字符串QUERYFMT。查询格式是标准printf(3)的标准输出版本。其格式由静态字符串组成(应包括标准C字符,除了换行符、tables或其它特殊字符串)和printf(3)类型格式符。当rpm已经知道打印的类型后,无论如何,类型指定必须被忽略,且被头标签替代的部分将被打印,被符上{}字符。标签名是一个固定的实例,这标签名主要的RPMTAG_ portion也可以被忽略。
交替的输出格式可以由带:typetag标签申请。通常,支持下面的类型:

引用
:armor  外面包一层ASCII键值。
:base64
    使用base64编码二进制数据。
:date  使用strftime(3) “%c”格式。
:day   使用strftime(3) “%a %b %d %Y”格式。
:depflags
    格式从属标记。
:fflags
     格式文件标记。
:hex   十六进制格式。
:octal  八进制格式。
:perms  文件许可格式。
:shescape
    不能在角本单个引用。
:triggertype
     显示触发器后缀。

例如,仅仅输出被查询的包的名字,可以使用%{NAME}做为一个格式字符串。在两列上输出包名和分区信息,可以使用%-30{NAME}%{DISTRIBUTION}。当调用时使用–querytags 参数,Rpm输出所有它所知道的标签列表。
有两个查询的子集选项:包选择和信息选择。
包选择选项:

引用
PACKAGE_NAME
     查询名字为PACKAGE_NAME的被安装的包。
-a, –all
     查询所有已经安装过的包。
-f, –file FILE
     查询拥有文件FILE的包。
–fileid MD5
    查询包含一个给定的文件检测符,也就是MD5文件内容目录。
-g, –group GROUP
     查询组GROUP的包。
–hdrid SHA1
     查询包含给定的头标识的包,也就是包含SHA1的不可变头区的包。
-p, –package PACKAGE_FILE

     查询(卸载)的包PACKAGE_FILE。PACKAGE_FILE可以以ftp或http风格的URL指定,这种情况下包头的实例将被下载和查询。在rpm的内部的ftp和http支持参见FTP/HTTP选项。PACKAGE_FILE参数,如果不是一个二进制包,将被解释为一个ASCII包的形式。可以存在注释,以#开头,且包说明文件的每一行都可以包括空白分隔的表达式。包括包含有远程一组解释的URL,将展开到作为附加的包PACKAGE_FILE参数赋值给查询代替包说明的路径下。

引用
–pkgid MD5
     查询包,包括给定的包认证信息,也就是说是一个MD5摘要。
–querybynumber HDRNUM
     直接查询HDRNUMth数据库入口,仅用于调试方式。
–specfile SPECFILE
     直接分析和查询SPECFILE,好象它就是一个包。虽然不是所有的信息(也就是说文件列表)都是有效的,允许rpm查询的类型常被用做从specfile中摘要信息而不必写specifle分析。
–tid TID
     查询给出TID的包事务认证。Unix时间戳当前被用作事务认证。所有内部有单个事务的被安装或删除的包都有一个简单的认证。
–triggeredby PACKAGE_NAME
     查询由包PACKAGE_NAME触发的包。
–whatprovides CAPABILITY
     查询所有提供CAPABILITY容量的包。
–whatrequires CAPABILITY
查询所有正确功能的CAPABILITY的请求的包。

包查询选项:

引用
–changelog
     显示包改变的信息。
-c, –configfiles
     只显示配置文件(意味着-l)。
-d, –docfiles
     只显示出文件文件(意味着-l)。
–dump 向下面那样备份文件:
     path、size、mtime、md5sum、mode、owner、group、isconfig、isdoc、rdev、symlink
     此选项必须与-l, -c, -d中的一个配合使用。
–filesbypkg
     在被选中的包中列出所有的文件。
-i, –info
     显示包信息,包括名称、版本和说明。如果指定的显示内容的话需要使用–queryformat选项。

–last Orders  
以包安装的顺序来列出包内容,结果是最后一个安装的包在最上层列出。
-l, –list
    列出包中的文件。
–provides
    列出包中规定的容量。
-R, –requires
    列出这个包所依赖的包。
–scripts
    列出部分包的指定角本作为安装和卸载的信息。
-s, –state
    列出在包中文件的状态(意味着-l)文件的状态包括正常、未安装、替换。
–triggers, –triggerscripts
    显示触发器角本,它包含在包中。

校验选项:
格式如下:

rpm {-V|–verify} [select-options] [verify-options]

    校验在包中已经安装且在rpm数据库中带有来自于中的元数据存储的文件比较信息在这些东西中,校验比较大小、MD5数、许可、类型、拥有者及每个文件的组。所有明细信息都将显示。没有从包中安装的文件,例如:使用—excludedocs选项将文件文档文件没有安装,则文档文件将被默认忽略。
    包选择选项与包查询选项相同(包括象参数的包的说明文件)。别的选项的唯一校验格式如下:

引用
–nodeps
     不校验包的从属部分。
–nodigest
     在读时不校验包或头的摘要。
–nofiles
     不校验包文件的属性。
–noscripts
     不执行%verifyscript角本(if any)。
–nosignature
     当读时不校验包或头的信号。
–nolinkto
–nomd5
–nosize
–nouser
–nogroup
–nomtime
–nomode
–nordev
不校验相应文件的属性。

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

引用
c %config 配置文件。
d %doc 文档文件。
g %ghost file (也就是说文件内容不没有包含在包的有效负荷中)。
l %license license文件。
r %readme readme文件。
从后面跟着文件名的包头中,8个字符每个都指出在数据库中属性记录值文件属性的比较结果。句号”.”意味着测试通过,而”?”说明没有不能执行(也就是说文件许不能读)。无论怎样,这些字符都指出了校验测试没有成功。
S 文件大小不同
M 模式不同(包括许可和文件类型)
5 MD5数不同
D 设置主要/较小的不匹配数
L readLink(2) 路径不匹配
U 用户所属关系不同
G 组所属关系不同
T mTime不同。

数字符号和摘要校验:
rpm数字符号命令的格式是:

rpm –import PUBKEY …
rpm {–checksig} [–nosignature] [–nodigest]
    PACKAGE_FILE …

引用
–checksig选项检查所有的包含在PACKAGE_FILE中的摘要和签名,来确认包的完整性及来源。注意,无论包什么时候读,签名都要进行校验,且–checksig对于校验所有的与包相关的摘要和签名都是很有用的。
    在没有公钥的情况下,数字符号不能校验。使用–import将一个ascii公钥加到你的rpm数据库中。导入的公钥存在于头中,且key回响管理是象一个包管理一样正确执行。例如,所有当前输入的公钥可以由下面的式子列出:
rpm -qa gpg-pubkey*
    当导入时关于指定的公钥的说明,能被查询所显示。,下面是关于Red Hat GPG/DSA key的显示信息:
rpm -qi gpg-pubkey-db42a60e
最后,公钥可以在输出后名象包一样被删除,下面是删除Red Hat GPG/DSA key:
rpm -e gpg-pubkey-db42a60e

包签名:

rpm –addsign|–resign PACKAGE_FILE …

引用
–addsign和—resign选项产生和插入新的签名给每一个指定的PACKAGE_FILE 包,用来代替所有存在的签名。由于历史的原因,有两个选面,这两者的行为没有什么不同。
使用GPG签名:
为了使用GPG为包做签名,rmp必须被配置成运行GPG且可以找到有适当KEY的键环。默认情况下,rpm查找键环的方式与GPG方式相同。也就是$GNUPGHOME 环境变量。如果你的键环没有定位到GPG预设的位置,那么你需要配置宏%_gpg_路径到GPG键环指定的位置。
为了保证与旧版的GPG、PGP和rpm兼容,只有V3 OpenPGP签名包被配置上了。DSA或者RSA的加密算法可以使用,但DSA是首选项。
如果你想要为你自己创建的包进行签名,也需要创建自己的公钥和私钥对(参见GPG手册)。你将也需要配置rpm宏。
%_signature
    签名类型。仅支持gpg与pgp方式。
%_gpg_name
    你希望使用的给你的包进行签名的键的“user”名。
例如,使用GPG使用类似于用户”John Doe  ;”从键环位置/etc/rpm/.gpg使用可执行的/usr/bin/gpg来为包签名:
%_signature gpg
%_gpg_path /etc/rpm/.gpg
%_gpg_name John Doe
%_gpgbin /usr/bin/gpg

在宏配置文件中使用上述的代码。为每个系统配置使用/etc/rpm/macros和~/.rpmmacros为每个用户进行配置。
重建数据库选项:
重建数据的rpm命令的通用格式如下:

rpm {–initdb|–rebuilddb} [-v] [–dbpath DIRECTORY] [–root DIRECTORY]

使用–initdb去创建一个新的数据库,使用–rebuilddb去重建一个数据库利用安装的包头索引。
SHOWRC
命令格式:
rpm –showrc
显示所有在rpmrc和macros配置文件中设置的选项中使用的rpm值。

引用
FTP/HTTP选项:
    Rpm能象FTP和/或HTTP客户端那样,所以包能从internet中进行查询和安装。安装、更新和查询包文件的操作可以作为一个ftp或http风格的URL指定。
ftp://USER:PASSWORD@HOST:PORT/path/to/package.rpm
    如果忽略了:PASSWORD部分,将会提示输入密码(针对每个用户/主机对)。如果用户和密码都忽略,ftp将使用匿名(anonymous)方式。实际上,ftp进行的是被动的传输。
Rpm允许在ftp的URLs中使用下面的选项:
–ftpproxy HOST
    主机HOST将做为所有传输的代理服务器,允许用户穿过那些使用代理的系统的防火墙去ftp。这个选项也可以通过使用宏%_ftpproxy来配置。
–ftpport HOST
    ftp使用连接到ftp代理服务器的TCP  PORT号来代替默认值。这个选项也可以由宏%_ftpport来指定。
Rpm允许以下面的格式使用http URLs:
–httpproxy HOST
       主机HOST将作为所有http传输的代理服务器。这个选项也可以由宏%_httpproxy指定。
–httpport PORT
    http使用连接到http代理服务器的TCP  PORT号来代替默认值。这个选项也可以由宏%_httpport来指定。

三、后续说明
执行rpm构建:
rpm的构建模式目前使用/usr/bin/rpmbuild进行。虽然由 popt别名提供的兼容性已经足够了,但还不是完美的。因此通过popt别名的兼容性目前正在被从rpm中删除。安装rpmbuild包,可参见rpmbuild(8)。在rpm(8)中可以找到所有的当前rpm构建的报有文档。
如果你想继续在命令行中使用rpmbuild,将下列的行加入到/etc/popt中:

引用
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

使用Mock 实现跨平台跨发行版编译RPM
创建VPS OS模板
RDAC的spec生成rpm脚本
关于rpm打包中的条件判断

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/111128.html

(0)
上一篇 2021年8月26日
下一篇 2021年8月26日

相关推荐

发表回复

登录后才能评论