歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎教程:Linux的rpm包管理

Linux基礎教程:Linux的rpm包管理

日期:2017/2/28 13:49:02   编辑:Linux教程

我們都知道,Windows的程序無法直接在Linux中運行,Windows中大量的木馬和病毒也無法被Linux識別,這樣加強了Linux的安全性,但所有的軟件包都必須針對Linux再做單獨的開發。

軟件包分類

源碼包 (把源代碼直接開放的包)

腳本安裝包(源碼包寫一個安裝界面,不需要手動安裝)

二進制包(RPM包、系統默認包)

源碼包的優點:

1.開源,如果有足夠的能力,可以修改源代碼

2.可以自由選擇所需的功能

3.軟件是編譯安裝,所以更加適合自己的系統,更加的穩定也效率更高

4.卸載方便

缺點:

1.安裝步驟較多,尤其在安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤

2.編譯過程時間過長,安裝比二進制安裝時間長

3.因為是編譯安裝,安裝過程中一旦報錯新手很難解決。

二進制包的優點:

1.包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載

2.安裝速度比源碼包安裝快的多

缺點:

1.經過編譯,不再可以看到源代碼

2.功能選擇不如源碼包靈活

3.依賴性(當安裝一個軟件包須先安裝另一個軟件包)

RPM:紅帽子包管理器(RedHat Package Manager)

rpm包管理方法

rpm命令管理

yum在線管理

rpm包命名規則

所有的rpm包都在光盤裡,在Packages目錄

httpd-2.2.15-15.el6.x86_64.rpm

httpd 2.2.15 1 5 el6. x86_64. rpm

軟件包名 軟件版本 軟件發布的次數 適合的Linux平台 適合的硬件平台 rmp 擴展名

需要注意的是包名和包全名是有區別的

包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意安裝路徑。(如安裝,升級)

包名:操作已經安裝的軟件包時,使用包名。是搜索/var/lib/rpm中的數據庫。(如查詢,卸載)

RPM包依賴性

樹形依賴:a——b——c

安裝時只能先安裝c,再安裝b,最後安裝a,卸載時卸載c,再卸載b,再卸載a

環形依賴:a——b——c——a

用一條命令把abc同時安裝

模塊依賴:模塊依賴查詢網站(www.rpmfind.net)

只要是.so.2的都為庫依賴包,不是獨立的包,是某一個軟件包的軟件,我們只要把軟件所在的包安裝上,也就自動安裝上了,依賴性就會被解決。把需要的依賴包進行查詢,如圖中的是libodcinst.so.2,進去查詢。

yum在線管理(解決依賴性)

實現准備一個包含所有rpm包的網站,作為我的在線服務器源,我們只要用在線命令去安裝軟件,不管我去依賴任何哪一個包,都不需要用用戶解決,yum會自動去服務器下載需要的包,然後所有的依賴性都自己解決。

是不是非要上網?不是,除了可以拿網絡yum源作為服務器,還可以拿本地光盤作為yum源,因為光盤裡包含了所有的rpm包。但是是需要收費的。

RPM常用命令

RPM 安裝

rpm 【選項】 包全名 (一定是包全名,而且是絕對路徑或者去/mnt/cdrom/Packages)

-i (install) 安裝

-v (verbose) 顯示詳細信息

-h (hash) 顯示進度

--nodeps 不檢測依賴性 (雖然有這個選項,但根據上面的理論,你覺得會用它嗎?)

當然,事項都是先將光盤掛載上的。


隨機測試了個,沒有出現依賴包問題,若提示出現的依賴包,就一層一層的安裝。

RPM包的升級

-U (upgrade) 升級

rpm -Uvh 包全名

需要有個比當前系統的包更高級的包,我們現在用的都是光盤中的包,沒有更高級的包。

RPM 卸載

-e (erase)卸載

--nodeps 不檢查依賴性

rpm -e 包名 (包名,因為是已經裝過的包,在後台數據庫搜索)

RPM的查詢方式

安裝和卸載用yum方法更為簡單,因為它會自動解決依賴性,但是查詢只能通過rpm命令來查詢。yum有查詢,但是沒有rpm查詢的多。

rpm -q 包名 查詢包是否安裝

-q (query)查詢

-a(all) 所有

-l (list) 列表

rpm -qa 【包名】 查詢所有已經安裝過的RPM包

rpm -ql 【包名】 查詢包中文件的安裝位置

-p (package) 查詢未安裝包信息

有人看到這裡就開始郁悶了,包都沒安裝,怎麼查看安裝位置啊。其實linux包安裝位置是組建包的時候就決定好的,即使沒安裝,我們也可以查看它打算裝哪

查詢系統文件屬於哪個RPM包

rpm -qf 系統文件文件名

-f (file)查詢系統文件屬於哪個軟件包

必須是通過包裝出來的,才能反向追查

查詢軟件包的依賴性

rpm -qR 包名

-R (requires) 查詢軟件包的依賴性

安裝appach需要裝這麼多這麼多包。。。查詢已經安裝過的包的依賴性沒有什麼意義,主要還是查詢為安裝包的依賴性。

Copyright © Linux教程網 All Rights Reserved