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  <jdoe@foo.com>;"從鍵環位置/etc/rpm/.gpg使用可執行的/usr/bin/gpg來為包簽名:
%_signature gpg
%_gpg_path /etc/rpm/.gpg
%_gpg_name John Doe <jdoe@foo.com>
%_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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM