前面我們提到Linux上的軟體都可以通過Tarball的方式進行源碼安裝,但每次都要下載、編譯、安裝,是否太麻煩了一些?有沒有類似windows那樣廠商把軟體編譯好,我們使用者直接拿來安裝就行?答案是肯定的,這就是我們今天要說到的rpm和yum。
在Linux上,有兩大主流的軟體管理方法,如下所示:
由於Centos採用的是第一種,因此在這隻介紹RPM和YUM。
什麼是RPM和SRPMRPM的全稱是RedHat Package Manager,它的最大特點是把軟體編譯重RPM安裝包,該安裝包裡記錄了依賴的軟體,當安裝RPM安裝包時,如果滿足依賴條件,予以安裝,否則將不能安裝。RPM雖然方便,但它要求你的主機環境必須和當初建立這個安裝包的主機環境一模一樣才行,因此有了SPRM,即Source RPM,也就是說RPM安裝包裡還包含原始碼。通常一個軟體在發布時,會同時釋放出該軟體的RPM與SRPM,如果沒有適合我們作業系統和硬體的RPM,我們還可以通過修改SRPM內的參數設定檔案,然後重新編譯產生適合我們Linux環境的RPM檔案。
RPM命令本機安裝的軟體資訊記錄在/var/lib/rpm目錄下的資料庫檔案,因此該目錄非常重要,千萬不要刪除。
RPM安裝:
rpm -ivh package_name-i: install的意思-v:查看更詳細的安裝資訊畫面-h: 以安裝資訊列顯示安裝進度範例一:安裝一個軟體:rpm -ivh rp-pppoe-3.5-32.1.i386.rpm範例二:安裝多個軟體:rpm -ivh a.i386.rpm b.i386.rpm *.rpm範例三:直接由網路安裝:rpm -ivh http://website.name/path/pkgname.rpm
RPM升級與更新:RPM的升級和更新很簡單,和安裝的命令差不多:
RPM查詢:如果你要查詢mysql是否已安裝,可執行如下命令:
# rpm -qa mysqlmysql-5.0.95-5.el5_9
它其實查的是/var/lib/rpm目錄下的資料庫檔案。
RPM卸載:
rpm -e pam
要特別注意的是:RPM的卸載過程一定要由最上層往下卸載,如果你把python刪除掉了,那麼所有依賴於python的軟體將全部不可用,這是災難性的,我就曾經犯過這類錯誤。所幸的是,上述的rpm -e命令如果卸載的軟體還有被其它軟體所依賴,將不卸載。
YUM - 線上安裝升級在用RPM安裝軟體時,會出現一個比較噁心的情況,就是你要安裝的軟體依賴於另一個軟體,而該軟體又依賴於其它軟體,以此類推,這樣一層一層下去,會很煩。YUM就是用來解決這個問題的,它會一口氣把所有依賴的軟體一併安裝,並且是線上的。
YUM查詢:
範例一:在yum伺服器上搜尋mysql相關軟體yum search mysql範例二:列出mysql這個軟體的功能說明yum info mysql範例三:列出yum伺服器上面所有的軟體yum list範例四:列出可供本機升級的軟體yum list updates
YUM安裝/升級yum的安裝和升級非常簡單,命令如下,它會自動解決軟體的依賴關係,很方便。
yum [install|updates] 軟體
YUM刪除
yum [remove] 軟體
一定要特別注意:yum會把所有依賴的軟體都一併刪除,千萬不要刪除基礎軟體,切記切記!