Provided by: manpages-zh_1.6.4.0-1_all bug

名稱

       rpm - RPM 軟體包管理器

總覽

   查詢和驗證軟體包:
       rpm {-q|--query} [select-options] [query-options]

       rpm --querytags

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

   安裝、升級和解除安裝軟體包:
       rpm {-i|--install} [install-options] PACKAGE_FILE ...

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

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

       rpm {--reinstall} [install-options] PACKAGE_FILE ...

       rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
           [--notriggers] [--test] PACKAGE_NAME ...

   雜項:
       rpm --showrc

       rpm --setperms PACKAGE_NAME ...

       rpm --setugids PACKAGE_NAME ...

   選擇相關選項
        [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]

   查詢相關選項
        [--changelog] [-c,--configfiles] [--conflicts]
        [-d,--docfiles] [--dump] [--filesbypkg] [-i,--info]
        [--last] [-l,--list] [--obsoletes] [--provides]
        [--qf,--queryformat QUERYFMT] [-R,--requires]
        [--scripts] [-s,--state] [--triggers,--triggerscripts]

   驗證相關選項
        [--nodeps] [--nofiles] [--noscripts]
        [--nodigest] [--nosignature]
        [--nolinkto] [--nofiledigest] [--nosize] [--nouser]
        [--nogroup] [--nomtime] [--nomode] [--nordev]
        [--nocaps]

   安裝相關選項
        [--allfiles] [--badreloc] [--excludepath OLDPATH]
        [--excludedocs] [--force] [-h,--hash]
        [--ignoresize] [--ignorearch] [--ignoreos]
        [--includedocs] [--justdb] [--nocollections]
        [--nodeps] [--nodigest] [--nosignature]
        [--noorder] [--noscripts] [--notriggers]
        [--oldpackage] [--percent] [--prefix NEWPATH]
        [--relocate OLDPATH=NEWPATH]
        [--replacefiles] [--replacepkgs]
        [--test]

描述

       rpm是一個強大的的包管理器,可以用於構建、安裝、查詢、核實、   更新以及解除安裝單個軟體包。
       一個軟體包通常包括一個檔案檔以及關於包的用於安裝和解除安裝的元資訊,  包括幫助指令碼、檔案
       屬性和軟體包的描述性資訊。

       必須選取下列基本模式中一個:  初始化資料庫,  重新生成資料庫,  生成包, 重新編譯包, 從Tar包生
       成RPM包, 查詢, 顯示查詢標籤, 安裝, 更新, 解除安裝, 核實, 簽名檢查, 再簽名, 添加簽名,  設定
       所有者和組 以及 顯示配置.

通用選項

       這些選項可以各種不同的方式使用.

       -vv    將打印出許多難以閱讀的除錯資訊.

       --quiet
              列印儘可能少的資訊 - 普通只展示錯誤資訊.

       --help 給出比常規更多的用法資訊.

       --version
              在單獨一個行裡給出所用 rpm 的版本號

       --rcfile <filelist><filelist>裡列出了一些檔案,  各檔案之間以冒號分隔, rpm 順序讀取這些檔案以獲得配置
              資訊.  <filelist>預設  是/usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc.   列表中的第一個檔
              案(/usr/lib/rpm/rpmrc)且只有這個檔案 必須存在, 代字元~指向$HOME的值.

       --root <dir>
              對所有操作均將<dir>視為系統根目錄.     注意這意味著對數    據庫的讀或修改操作都將是
              在<dir>目錄下進行, 並且指令碼 的prepost操作都是在做了以<dir>為根目錄的chroot() 之
              後進行.

       --dbpath <path>
              依照<path>使用RPM的資料庫.

       --justdb
              更新只針對資料庫,而不是整個檔案系統.

       --ftpproxy <host>, --httpproxy <host><host>為FTP或HTTP的代理伺服器. 參閱FTP/HTTP 選項.

       --ftpport <port>, --httpport <port><port>為FTP或HTTP的代理伺服器的埠. 參閱FTP/HTTP 選項.

       --pipe <cmd>
              透過管道將rpm的輸出輸入到命令<cmd>.

安裝和升級選項

       通常的rpm安裝命令如下:

            rpm -i [install-options] <package_file>+

       這樣將安裝一個新的包. 通常的rpm升級命令如下:

            rpm -U [install-options] <package_file>+

       這樣將當前已安裝的包升級或新安裝到一個新的RPM版本. 升級和 安裝是一樣的, 區別在於升級要將所
       有別的版本的包從系統移去.

            rpm [-F|--freshen] [install-options] <package_file>+

       這樣也升級包, 但只有在系統存在一個更早版本的包時候才使用這 種方式.

       如果包在安裝之前要先進行下載,  <package_file>應該指明為一個  ftp或者http   URL.   要得到關
       於RPM包生成的ftp和http支援的資訊, 可以參閱FTP/HTTP 選項.

       --force
              與使用--replacepkgs, --replacefiles, 以及--oldpackage效果相同

       -h, --hash
              包檔如果沒有被解包, 列印50個破折號. 配合-v使用可以 使得有更好的展示.

       --oldpackage
              允許用舊版本的包取代較新的版本.

       --percent
              給出檔案從包檔解包的百分比. 該項的作用是為了使rpm相 比於別的工具更容易使用.

       --replacefiles
              即使要安裝的包會取代別的已安裝包的檔案, 也安裝該包.

       --replacepkgs
              即使包的部分內容已安裝在系統裡,也安裝該包.

       --allfiles
              安裝或升級包裡所有的缺失檔案,不管其是否存在.

       --nodeps
              在安裝或升級包之前不做依賴檢查.

       --noscripts
              不執行安裝前或安裝後腳本

       --notriggers
              不執行由該包的安裝所激發的指令碼

       --ignoresize
              安裝該包前不檢查mount檔案系統是否有足夠的磁碟空間.

       --excludepath <path>
              不安裝檔名以路徑<path>開頭的檔案.

       --excludedocs
              不安裝任何標記為文件的檔案(包括手冊頁及文字資訊檔案).

       --includedocs
              安裝文件檔案, 這是預設的操作.

       --test 不安裝包, 只是簡單地檢查並報告可能的衝突.

       --ignorearch
              允許安裝或升級其體系與主機不匹配的二進位制RPM包.

       --ignoreos
              允許安裝或升級其作業系統與主機不匹配的二進位制RPM包.

       --prefix <path>
              對於可浮動包, 這將把安裝字首設定到<path>.

       --relocate <oldpath>=<newpath>
              將檔案從<oldpath>改置到<newpath>, 這使得可以浮動包.

       --badreloc
              與--relocate配合使用, 強制改置不可浮動的包.

       --noorder
              安裝時對包不重新排序, 正常在安裝時應該重新排序包列 表, 以滿足依賴性.

查詢選項

       rpm的查詢命令通常的格式如下:

            rpm -q [query-options]

       可以制定包資訊的列印格式, 這時要用[--queryformat|-qf]選項, 格式串跟在選項後面.

       查詢格式由標準printf(3)格式的版本決定. 格式由靜態字串 (包括除了換行符, tab, 以及其它的特殊
       字元之外的標準C字元), 以及printf(3)型別格式符. 如果rpm已經知道列印型別, 則型別說明就必須被
       忽略, 並且以要列印的頭部tag的名字取代, 該名字被括在{}之間. 而且tag的RPMTAG_部分也被忽略.

       可以用:typetag來改變輸出格式.當前支援的有如下型別:octal, date, shescape, perms, fflags, 以
       及 depflags.

       例如,要只打印被查詢包的名字,可以用%{名稱}作為格式字串.   要在兩個欄裡列印包名及分佈資訊,可
       以用%-30{名稱}%{分佈}.

       當被--querytags引數激發時,rpm將列出所有tags.

       查詢選項有兩種子設定: 包選擇和資訊選擇.

       包選擇選項:

       <package_name>
              查詢名為<package_name>的安裝包.

       -a, --all
              查詢所有安裝的包.

       --whatrequires <capability>
              查詢所有需要<capability>才能提供適當功能的包.

       --whatprovides <virtual>
              查詢所有提供<virtual>功能的包.

       -f <file>, --file <file>
              查詢擁有檔案<file>的包.

       -g <group>, --group <group>
              查詢屬於???組<group>的包

       -p <package_file>
              查詢一個沒有安裝的包<package_file>.  <package_file>可以被說明為ftp或http URL,這時包
              頭會被下載並被查詢.     要得到關於RPM生成的ftp和http客戶端支援的資訊,請參閱FTP/HTTP
              OPTIONS

       --specfile <specfile>
              像對待一個包一樣Parse並查詢<specfile>.  雖然不是所有的資訊(例如檔案列表)可用,這種查
              詢型別 允許rpm在不用寫一個specfile parser的情況下從spec files提取資訊.

       --querybynumber <num>
              直接查詢<num>資料庫入口,該選項在除錯時很有用處.

       --triggeredby <pkg>
              查詢由包<pkg>所激發的包.

       資訊選擇選項:

       -i     展示包資訊,包括名字,版本,以及描述.???

       -R, --requires
              列出該包所依賴的別的包.

       --provides
              列出該包所提供的功能.

       --changelog
              展示該包的變更資訊.

       -l, --list
              列出該包的檔案.

       -s, --state
              展示該包各檔案的狀態資訊,因此該選項實際隱含了-l選項.        檔案狀態可以是如下之一:
              normal, not installed, 或者 replaced.

       -d, --docfiles
              只列出文件檔案(隱含-l選項).

       -c, --configfiles
              只列出配置檔案(隱含-l選項).

       --scripts
              如果有的話,就列出該包裡作為安裝或解除安裝過程一部分的特殊shell指令碼.

       --triggers, --triggerscripts
              如果有的話,展示該包包含的激發子指令碼.

       --dump 如下的啞檔案資訊:  path  size  mtime  md5sum  mode  owner group isconfig isdoc rdev
              symlink.  該選項必須至少配合如下選項之一:-l, -c, -d使用.

       --last 按包的安裝時間進行排序,這使得最新的包在序列頂部.

       --querybypkg
              列出每個包裡的所有檔案.

       --triggerscripts
              顯示所選包的所有激發子指令碼.

核實選項

            rpm -V|-y|--verify [verify-options]

       將所安裝包的檔案資訊和源發包的檔案資訊以及在rpm資料庫的檔案資訊做比較, 以此來核實包.  對於
       別的東西,則???  任何的差異都會展示.包的說明選項與查詢選項相同.

       對於不是從包安裝的檔案,例如在安裝的時候用"--excludedocs" 選項排除了的文件檔案,將在沒有提示
       的情況下被忽略掉.

       核實選項可以使用如下模式:

       --nofiles
              核實時忽略缺失檔案

       --nomd5
              核實時忽略MD5校驗錯誤

       --nopgp
              核實時忽略PGP校驗錯誤

       --nofiles
              核實時忽略缺失檔案

              輸出的格式是一個八個字元的字串,和一個可能有的"c", 指明後面是一個配置檔案,以及後面的
              檔名.   八個字元中的每一個都代表著一個檔案屬性與儲存在RPM的資料庫中的屬性紀錄值的比
              較結果.  單個的"."(句號)表明檢查透過.下列字元代表特定檢查的失敗:

       5      MD5校驗和

       S      檔案大小

       L      符號連線

       T      修改時間

       D      裝置

       U      使用者

       GM      模式(包括許可和檔案型別)

簽名檢查

       通常的rpm簽名檢查命令如下:

            rpm --checksig <package_file>+

       這將檢查包<package_file>的PGP簽名以確保其完整性和源發性.  可以從配置檔案讀取PGP配置資訊.細
       節請查閱 PGP 簽名 部分.

解除安裝選項

       rpm解除安裝命令的通常格式如下:

                rpm -e <package_name>+

       --allmatches
              將移去與<package_name>相匹配的所有版本的包.正常的話,如果<package_name>與多個包相匹
              配,就會給出錯誤資訊.

       --noscripts
              不執行安裝前或安裝後腳本.

       --notriggers
              不執行由移去該包所激發的指令碼

       --nodeps
              解除安裝前不檢查依賴性

       --test 不真正解除安裝任何東西,只是遍歷該動作.配合-vv選項會很有用處.

生成選項

       The general form of an rpm build command is

           rpm -[b|t]O [build-options] <package_spec>+

       The argument used is -b if a spec file is being used to build the package and  -t  if  RPM
       should  look  inside of a gzipped (or compressed) tar file for the spec file to use. After
       the first argument, the next argument (O) specifies the stages of building  and  packaging
       to be done and is one of: rpm通常的生成選項如下:

           rpm -[b|t]O [build-options] <package_spec>+

       -bp    Executes  the  "%prep"  stage from the spec file.  Normally this involves unpacking
              the sources and applying any patches.

       -bl    Do a "list check".  The "%files" section from the spec file is macro expanded,  and
              checks are made to verify that each file exists.

       -bc    Do  the  "%build"  stage  from  the  spec  file (after doing the prep stage).  This
              generally involves the equivalent of a "make".

       -bi    Do the "%install" stage from the spec file (after doing the prep and build stages).
              This generally involves the equivalent of a "make install".

       -bb    生成一個二進位制包(在完成prep, build, 以及 install階段之後)

       -bs    只生成源包(在完成prep, build, 以及 install階段之後)

       -ba    生成二進位制包和源包(在完成prep, build, 以及 install階段之後)

       還可以使用的選項如下:

       --short-circuit
              忽略導致specified階段(比如,忽略所有導致specified階段的階段).   只有與-bc 以及 -bi合
              用才有效.

       --timecheck
              設定"timecheck"的值(0-?).該值也可以透過定義宏"_timecheck"來配置.  timecheck值以秒為
              單位,表示一個包生成的最大年齡.如果時間超過了該值, 則對所有檔案皆給出警告資訊.

       --clean
              在包完成之後,移去生成樹.

       --rmsource
              在完成包的生成之後移去源和spec檔案 (也可以單獨使用,比如:"rpm --rmsource foo.spec").

       --test 不執行任何生成階段.在測試spec檔案時很有用處.

       --sign 在包中嵌入一個PGP簽名.該簽名可以用來核實該包的完整性和源發性.  配置細節可以察看 PGP
              簽名 一節.

       --buildroot <dir>
              在生成包的時候,用目錄<dir>覆蓋包的生成根目錄tag.

       --target <platform>
              在生成包的時候,將<platform>解釋為arch-vendor-os,並且相應地設定           宏_target,
              _target_arch 以及 _target_os.

       --buildarch <arch>
              在生成包的時候,將architecture設定到<arch>.  該選項在RPM 3.0中由於--target的出現而被
              拋棄.

       --buildos <os>
              在生成包的時候,將architecture設定到<os>.  該選項在RPM 3.0中由於--target的出現而被拋
              棄.

重新生成以及重新編譯選項

       There are two other ways to invoke building with rpm: 有兩種不同的方法用rpm重新生成包:

       rpm --recompile <source_package_file>+

       rpm --rebuild <source_package_file>+

       當以這種方式激發的時候,rpm安裝指明的源包,並且完成prep,compile,install工作.              另
       外,--rebuild生成一個新的二進位制包.     當包的生成完成的時候,生成所用目錄被移去(就如同使用
       了--clean), 而且該包的源和spec檔案也要移走.

簽名一個已存在的RPM

       rpm --resign <binary_package_file>+

       該選項生成並將新簽名插入所列出的包裡.已存在的簽名會被移走.

       rpm --addsign <binary_package_file>+

       該選項生成並將新簽名附加到所列出的包的簽名之後.

PGP 簽名

       要使用簽名特性,RPM必須要能夠執行PGP(要安裝了PGP並且你可以訪問它),  而且還需PGP能找到一個帶
       有RPM公鑰的公鑰環.  預設情況下,RPM使用PGP的預設設定(著名的PGPPATH)來查詢鑰環.   如果你的鑰
       環並不在PGP所期望它們處在的地方,則你需要配置宏

       _pgp_path
              將其設為要使用的PGP鑰環所在的位置.

       如果你想要簽名一個你自己生成的包,你還必須建立自己的公鑰和金鑰對(請參閱PGP手冊).   還需要配
       置簽名型別宏:

       _signature
              目前只支援pgp.還有使用者名稱宏:

       _pgp_name
              指明想要使用其鍵去簽名你的包的使用者.

              在生成包的時候,可以將--sign加到命令列裡.這樣只需給出你的口令短語,  就可以在生成包的
              同時對其簽名.

              比如,要想以使用者"John  Doe <jdoe@foo.com>"的身份,用在 /etc/rpm/.pgp的鑰環,去簽名一
              個包,就應該將

       %_signature
              pgp

       %_pgp_name
              /etc/rpm/.pgp

       %_pgp_name
              John Doe <jdoe@foo.com>"

       包括在一個宏配置檔案裡.     對於系統的配置可以使用/etc/rpm/macros,    而對於個人配置可以使
       用~/.rpmmacros.

重新生成資料庫選項

       rpm重建資料庫的命令是

            rpm --rebuilddb

       要重建一個新的資料庫,可以:

            rpm --initdb

       對這些模式唯一的選項是--dbpath--root.

SHOWRC

       執行

            rpm --showrc

       展示一些設定在rpmrc檔案裡的值,RPM所有選項都會利用這些值.

FTP/HTTP選項

       RPM包括簡單的FTP和HTTP客戶端程式,這樣可以簡化那些從internet取得的包的安裝和查詢.    用於安
       裝,升級,以及查詢操作的包檔案可以說明為ftp或者http格式的URL:

            ftp://<user>:<password>@hostname:<port>/path/to/package.rpm

       如果忽略掉:password部分,會提示要求給出口令(每個使用者/主機名對一次) 如果使用者名稱和口令都
       忽略了,就使用匿名ftp.  總是使用消極(PASV) ftp傳送.

       RPM允許使用下列操作輔助ftp URLs

       --ftpproxy <hostname>
              主機<hostname>將被作為所有ftp傳輸的代理伺服器使用, 這樣允許使用者透過使用了代理系統
              的防火牆機器來做ftp傳輸.  該選項也可以透過配置宏_ftpproxy來指明.

       --ftpport <port>
              用該TCP<埠>號取代預設的埠去連線代理ftp伺服器.    該選項也可以透過配置宏_ftpport來指
              明.

       RPM允許使用下列操作輔助http URLs

       --httpproxy <hostname>
              將主機<主機名>作為所有http傳輸的代理伺服器使用.  該選項可以透過配置宏_httpproxy來指
              明.

       --httpport <port>
              用該TCP<埠>號取代預設的埠去連線代理http伺服器.  該選項也可以透過配置宏_httpport來指
              明.

檔案

       /usr/lib/rpm/rpmrc
       /etc/rpmrc
       ~/.rpmrc
       /var/lib/rpm/packages
       /var/lib/rpm/pathidx
       /var/lib/rpm/nameidx
       /tmp/rpm*

另見

       glint(8), rpm2cpio(8) http://www.rpm.org/

作者

       Marc Ewing <marc@redhat.com>
       Jeff Johnson <jbj@redhat.com>
       Erik Troan <ewt@redhat.com>

[中文版維護人]

       mapping <email>

[中文版最新更新]

       2001/7/21

《Linuxfourm 中文MAN-PAGE計劃》

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh