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