rpm 安裝時候的檔案庫資訊就在/var/lib/rpm/ 目錄中,以后rpm包安裝時都要來查詢這個目錄中的檔案看是否有安裝過,以及升級時版本的比較,和rpm包的數(shù)字簽名都存在這個檔案庫目錄中
rpm 安裝使用:
rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
-i :install 的意思
-v :察看更細(xì)部的安裝資訊畫面
-h :以安裝資訊列顯示安裝進(jìn)度
rpm 網(wǎng)絡(luò)安裝:
rpm -ivh http://website.name/path/pkgname.rpm
rpm 的一些相關(guān)參數(shù):
--nodeps:
使用時機(jī):當(dāng)發(fā)生軟體屬性相依問題而無法安裝,但你執(zhí)意安裝時
危險性: 軟體會有相依性的原因是因?yàn)楸舜藭褂玫綄Ψ降臋C(jī)制或功能,如果強(qiáng)制安裝而不考慮軟體的屬性相依, 則可能會造成該軟體的無法正常使用!
--replacefiles:
使用時機(jī): 如果在安裝的過程當(dāng)中出現(xiàn)了『某個檔案已經(jīng)被安裝在你的系統(tǒng)上面』的資訊,又或許出現(xiàn)版本不合的訊息 (confilcting files) 時,可以使用這個參數(shù)來直接覆蓋檔案。
危險性: 覆蓋的動作是無法復(fù)原的!所以,你必須要很清楚的知道被覆蓋的檔案是真的可以被覆蓋喔!否則會欲哭無淚!
--replacepkgs:
使用時機(jī): 重新安裝某個已經(jīng)安裝過的軟體!如果妳要安裝一堆 RPM 軟體檔案時,可以使用 rpm -ivh *.rpm ,但若某些軟體已經(jīng)安裝過了, 此時系統(tǒng)會出現(xiàn)『某軟體已安裝』的資訊,導(dǎo)致無法繼續(xù)安裝。此時可使用這個選項來重複安裝喔!
--force:
使用時機(jī):這個參數(shù)其實(shí)就是 --replacefiles 與 --replacepkgs 的綜合體!
--test:
使用時機(jī): 想要測試一下該軟體是否可以被安裝到使用者的 Linux 環(huán)境當(dāng)中,可找出是否有屬性相依的問題。範(fàn)例為:
rpm -ivh pkgname.i386.rpm --test
--nosignature:
使用時機(jī): 想要略過數(shù)位簽章的檢查時,可以使用這個選項。
--prefix NEW_PATH
使用時機(jī): 要將軟體安裝到其他非正規(guī)目錄時。舉例來說,妳想要將某軟體安裝到 /usr/local 而非正規(guī)的 /bin, /etc 等目錄, 就可以使用『 --prefix /usr/local 』來處理了。
rpm升級時候使用的參數(shù):
-Uvh : (U指 update)
後面接的軟體即使沒有安裝過,則系統(tǒng)將予以直接安裝; 若後面接的軟體有安裝過舊版,則系統(tǒng)自動更新至新版;
-Fvh : (F 指 fresh)
如果後面接的軟體並未安裝到你的 Linux 系統(tǒng)上,則該軟體不會被安裝;亦即只有已安裝至你 Linux 系統(tǒng)內(nèi)的軟體會被『升級』!
注意:
通常有的朋友在進(jìn)行整個作業(yè)系統(tǒng)的舊版軟體修補(bǔ)時,喜歡這麼進(jìn)行:
1. 先到各發(fā)展商的 errata 網(wǎng)站或者是國內(nèi)的 FTP 映像站捉下來最新的 RPM 檔案;
2. 使用 -Fvh 來將你的系統(tǒng)內(nèi)曾安裝過的軟體進(jìn)行修補(bǔ)與升級!(真是方便呀!)
所以,在不曉得 yum 功能的情況下,妳依舊可以到 CentOS 的映設(shè)站臺下載 updates 資料,然後利用上述的方法來一口氣升級! 當(dāng)然囉,升級也是可以利用 --nodeps/--force 等等的參數(shù)啦!
-qi :
列出該軟體的詳細(xì)資訊 (information),包含開發(fā)商、版本與說明等;
-qa :
列出所有的,已經(jīng)安裝在本機(jī) Linux 系統(tǒng)上面的所有軟體名稱;
-q:
僅查詢,後面接的軟體名稱是否有安裝;
-qc :
列出該軟體的所有設(shè)定檔 (找出在 /etc/ 底下的檔名而已)
-qd :
列出該軟體的所有說明檔 (找出與 man 有關(guān)的檔案而已)
-qR:
列出與該軟體有關(guān)的相依軟體所含的檔案 (Required 的意思)
-qpl name.rpm :
可查看該 rpm 包內(nèi)的內(nèi)容
例子:
[root@www ~]# rpm -qf /bin/sh
bash-3.2-21.el5
# 這個參數(shù)後面接的可是『檔案』吶!不像前面都是接軟體喔!
# 這個功能在查詢系統(tǒng)的某個檔案屬於哪一個軟體所有的。
如果我誤砍了某個重要檔案,例如 /etc/crontab,偏偏不曉得他屬於哪一個軟體,該怎麼辦?
雖然已經(jīng)沒有這個檔案了,不過沒有關(guān)係,因?yàn)?RPM 有記錄在 /var/lib/rpm 當(dāng)中的資料庫啊!所以直接下達(dá):
rpm -qf /etc/crontab
就可以知道是那個軟體囉!重新安裝一次該軟體即可!
當(dāng)/var/lib/rpm/ 目錄內(nèi)的資料庫損毀時,可用:
rpm --rebuilddb <==重建資料庫