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  <[email protected]>;"从键环位置/etc/rpm/.gpg使用可执行的/usr/bin/gpg来为包签名:

%_signature gpg

%_gpg_path /etc/rpm/.gpg

%_gpg_name John Doe <[email protected]>

%_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

 

你可能感兴趣的:(rpm)