一、簡介
在windows系統上我們安裝軟體的時候加上了一些與這些程式相關的資訊,將他建立稱為了資料庫,就可以實現軟體的安 裝、卸載、升級與驗證了,類似於windows的“添加刪除程式”。由於在linux系統上利用源碼包設定編譯參數、實際編譯、最後還要根據需要的方式來安裝程式,這個過程很是麻煩,而且對於不熟悉整個系統的使用者來說,更是一種負擔,所以後來在我們linux系統下至有兩種常見的套件管理程式,分別是RPM和Debian的dpkg,其中RPM最為常見,那麼晚我們 下面就來介紹下RPM。
RPM的全名為“RedHat Package Manager”,顧名思義它是由RedHat公司開發的。Rpm是以一種資料庫記錄的方式將所 需要的套件安裝到linux主機的一套管理程式,它最大的特點就是將要安裝的套件先編譯並打包,通過封裝好的套件中默 認的資料庫記錄,記錄這個套件在安裝的時候所依賴的屬性模組。使用者在安裝的時候,RPM會根據套件裡的記錄資訊,查 詢主機的相依性屬性套件是否滿足,如滿足則給予安裝。若不滿足在不給於安裝、安裝的時候將該套件的資訊全部寫入RPM 的資料庫中,以方便將來的查詢、驗證與卸載。這樣做的優點:
1、由於已經編譯完成並且打包,所有安裝方便。
2、由於套件資訊已經記錄在了Linux主機的資料庫中,方便查詢、升級與卸載。
當然其也有其缺點,由於所有的資料已經編譯完成,所以安裝的時候一定需要當初安裝時的主機環境,也就是說,當初建立這個套件的安裝環境,必須在使用者主機上出現,如果不出現就無法進行安裝。缺點主要如下:
1、安裝環境必須與打包時的環境一致
2、需要滿足套件的相依性屬性需求
3、卸載時需要特別小心,最底層的套件不可先刪除,否則可能對整個系統造成問題。
RPM程式的資料庫位置/var/lib/rpm,這裡面定義了關於RPM管理的所有屬性,當然我們如果還可以更新這個資料庫的,
rpm --rebuilddb:重建資料庫,一定會重建立立。
rpm --initdb:初始化資料庫,沒有才建立,有就不用建立。