Dec 21

[转]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

Tags:
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]