描述:RPM 全名是『 RedHat Package Manager 』node
優勢:linux
1. 因爲已經編譯完成而且打包完畢,因此安裝上很方便( 不須要再從新編譯 );web
2. 因爲套件的信息都已經記錄在 Linux 主機的數據庫上,很方便查詢、升級與卸載;數據庫
缺點:ui
1. 安裝的環境必須與打包時的環境需求一致或至關;.net
2. 須要知足套件的相依屬性需求;orm
3. 卸載時須要特別當心,最底層的套件不可先移除,不然可能形成整個系統的問題!ip
SRPM 是 Source RPM,與 RPM 檔案相比, SRPM 多了一個從新編譯的動做,咱們就能夠透過修改 SRPM 內的參數設定,從新編譯產生能適合咱們 Linux 環境的 RPM 檔案。md5
rpm 就會將套件的信息寫入:/var/lib/rpm 這個目錄中,因此, 日後您在進行查詢的時候或者是預計要升級的時候,相關的信息就會由 /var/lib/rpm 這個目錄的內容數據來提供。開發
注意:使用RPM時可能會遇到軟件包依賴性的問題,第一種解決方式是安裝好全部的依賴包,第二種方式是使用urpmi/apt/yum來自動安裝依賴包。
RPM 安裝包
[root@linux ~]# rpm -ivh rp-pppoe-3.1-5.i386.rpm
[root@linux ~]# rpm -ivh a.i386.rpm b.i386.rpm *.rpm
[root@linux ~]# rpm -ivh http://website.name/path/pkgname.rpm
[root@linux ~]# rpm -ivh --relocate /=/opt/rp rp-pppoe-3.1-5.i386.rpm
爲安裝包指定安裝目錄 使用--relocate
可以使用的參數包括--nodeps, --nomd5, --noscripts, --replacefiles, --replacepkgs(已安裝的軟件再安裝一次), --force, --test(檢測依賴關係)
RPM 升級包
[root@linux ~]# rpm -Uvh rp-pppoe-3.1-5.i386.rpm
後面接的套件即便沒有安裝過,則系統將予以直接安裝; 若後面接的套件有安裝過舊版,則系統自動更新至新版;
[root@linux ~]# rpm -Uvh --oldpackage rp-pppoe-3.0-5.i386.rpm
降級要加--oldpackage
[root@linux ~]# rpm -Fvh rp-pppoe-3.1-5.i386.rpm
若是後面接的套件並未安裝到您的 Linux 系統上,則該套件不會被安裝;亦即只有安裝至您 Linux 系統內的套件會被『升級』!
RPM 查詢包
[root@linux ~]# rpm -qa
[root@linux ~]# rpm -q[licdR] 已安裝的套件名稱
[root@linux ~]# rpm -qf 存在於系統上面的某個檔案
[root@linux ~]# rpm -qp[licdR] 未安裝的某個文件名稱
參數:
查詢主要分爲兩部分,一個是查已安裝,另外一個則是查某個 rpm 檔案內容。
查詢已安裝套件的信息:
-q :僅查詢,後面接的套件名稱是否有安裝;
-qa :列出全部的,已經安裝在本機 Linux 系統上面的全部套件名稱;
-qi :列出該套件的詳細信息 (information),包含開發商、版本與說明等;
-ql :列出該套件全部的檔案與目錄所在完整文件名 (list);
-qc :列出該套件的全部配置文件 (找出在 /etc/ 底下的文件名)
-qd :列出該套件的全部說明檔 (找出與 man 有關的檔案而已)
-qR :列出與該套件有關的相依套件所含的檔案 (Required 的意思)
-qf :由後面接的文件名稱,找出該檔案屬於哪個已安裝的套件;
查詢某個 RPM 檔案內含有的信息
-qp[icdlR]:注意 -qp 後面接的全部參數以上面的說明一致。但用途僅在於找出某個 RPM 檔案內的信息,而非已安裝的套件信息!
RPM 驗證包
[root@linux ~]# rpm -Va
[root@linux ~]# rpm -V 已安裝的套件名稱
[root@linux ~]# rpm -Vp 某個 RPM 檔案的檔名
[root@linux ~]# rpm -Vf 在系統上面的某個文件
RPM 卸載包
[root@linux ~]# rpm -e 套件名稱
若是有依賴關係,您也能夠用--nodeps 忽略依賴的檢查來刪除。
重建數據庫
[root@linux ~]# rpm --rebuilddb
REBUILD 安裝包
--rebuild
這個參數會將後面的 SRPM 進行『編譯』與『打包』的動做,最後會產生 RPM 的檔案,可是產生的 RPM 檔案並無安裝到系統上。
--recompile
這個動做會直接的『編譯』『打包』而且『安裝』囉!請注意, rebuild 僅『編譯並打包』而已,而 recompile 不但進行編譯跟打包,還同時進行『安裝』了!