今天我們來講linux軟件包管理,因?yàn)閘inux版本的不同,軟件包的管理稍有區(qū)別。在redhat系列里,我們二進(jìn)制軟件包的管理比較傾向于
RPM和YUM。而在debian系列中,我們廣泛使用
APT的管理方式。
軟件包的管理一般分為三種:二進(jìn)制軟件包管理、源代碼包管理、腳本安裝(shell或java)。其中我們的重點(diǎn)是二進(jìn)制軟件包的管理,其他的兩種用案例來說明。
一、RPM包管理

由上面RPM例子可知關(guān)于軟件包的名字。注意,安裝的時(shí)候需要使用的是軟件包的全稱,而卸載的時(shí)候只需要使用軟件的名稱。接下來介紹rpm使用命令:
(1)rpm卸載

從例子可以看出,是使用
rpm -m 軟件名 來卸載一個(gè)軟件的,但是在卸載samba的時(shí)候卻被告知,因?yàn)閟amba被另外一個(gè)軟件依賴而卸載失敗。兩種辦法,一就是把依賴samba的先卸載再來卸載samba,二就是通過--nodeps選擇來強(qiáng)行卸載。
(2)rpm安裝
既然我們之前卸載了sudo軟件,那我們現(xiàn)在就來安裝sudo.軟件包的獲取要么是從網(wǎng)站下載的或者是從光盤獲得安裝。sudo就在系統(tǒng)安裝盤里就有。那么要用光盤進(jìn)行安裝之前,我們要對(duì)光盤進(jìn)行
掛載(光盤掛載),也就是通過系統(tǒng)文件的方法訪問光盤。通常我們系統(tǒng)在/mnt目錄中創(chuàng)建文件進(jìn)行掛載,通過monut指令就可以進(jìn)行掛載了,記得把光盤放入光驅(qū),不然會(huì)提示找不到介質(zhì)。

在掛載成功后,我們?cè)L問/mnt/cdrom就相當(dāng)于訪問光盤了。進(jìn)入光盤,再進(jìn)入CentOS目錄,我們可以發(fā)現(xiàn)所有的RPM軟件安裝包都在這個(gè)目錄里面,通過ls | grep sudo 我們可以發(fā)現(xiàn)有我們需要的sudo軟件安裝包。然后通過
rpm -ivh 軟件包全名 就可以安裝軟件包。其中-i就是安裝的install,-v是查看安裝過程信息,-h是顯示安裝進(jìn)度。

(3)rpm查詢
通過
rpm -q 軟件名 來查詢?cè)撥浖欠褚呀?jīng)安裝,但當(dāng)你對(duì)軟件名記不清或者與某些關(guān)鍵詞相關(guān)的軟件感興趣時(shí),可以通過
rpm -qa | grep 軟件關(guān)鍵字 來查已安裝的軟件包。-qa是表示查詢所有軟件包。

(4)rpm校驗(yàn)
使用rpm -V 軟件名 可以對(duì)這個(gè)軟件的所有文件進(jìn)行校驗(yàn),如果校驗(yàn)沒有問題會(huì)沒有任何提示,如果出現(xiàn)問題,會(huì)以字母的方式告知。


(5)
rpm提取(修復(fù)時(shí)常用命令) 當(dāng)有些軟件的某個(gè)文件或者配置文件順壞或者丟失的時(shí)候,我們需要從rpm軟件安裝包中把所需的文件提取出來來修復(fù)軟件。我們可以使用rpm2cpio命令來實(shí)現(xiàn)。

(6)附加參數(shù)
--excludedocs 不安裝軟件包中的文檔文件
--prefix=Path 將軟件包安裝到由path指定的路徑下(注:大多rpm都不允許改變安裝目錄),下例中predix等號(hào)后面即path。

--test 只對(duì)安裝
進(jìn)行測(cè)試,并不實(shí)際安裝。--replaceplgs 進(jìn)行覆蓋安裝,當(dāng)軟件包已安裝了,可以
使用該命令進(jìn)行覆蓋安裝。--repalcefiles 如果正在安裝的軟件包中的某一個(gè)文件在其他已安裝過的軟件包中安裝了,那么就會(huì)出現(xiàn)文件沖突的錯(cuò)誤,通過該參數(shù)忽略錯(cuò)誤,繼續(xù)安裝。
--nodeps 這個(gè)參數(shù)在卸載時(shí)候有用。在安裝時(shí)候也有用,有時(shí)候在安裝軟件包時(shí)候,所依賴的軟件包沒有,就會(huì)安裝不了,那么如果仍想安裝就只有用nodeps參數(shù)。
-U 對(duì)軟件包進(jìn)行升級(jí)。

二、YUM包管理
正是因?yàn)閞pm對(duì)于軟件包的互相依賴關(guān)系的支持差勁,所以yum應(yīng)運(yùn)而生。yum的兩個(gè)好處就是:自動(dòng)解決軟件包間的依賴關(guān)系和方便升級(jí)。yum應(yīng)用需要聯(lián)網(wǎng)才能發(fā)揮價(jià)值。
(1)yun安裝與檢測(cè)升級(jí)

通過
yum install 軟件名 來聯(lián)網(wǎng)進(jìn)入下載安裝,它會(huì)為你自動(dòng)下載所有所需的依
賴軟件包。通過yum check-update 軟件名 來聯(lián)網(wǎng)檢測(cè)是否有需要跟新軟件。在檢測(cè)
升級(jí)以后,通過yum update 軟件名 來升級(jí)。
(2)其他命令yum list 查詢yum源的所有軟件包。通過yum list | grep 軟件名 可以查詢當(dāng)前軟件是否安裝等信息。
yum info 軟件名 查詢yum源中軟件包里的信息
yum remove 軟件名 卸載軟件
三、源代碼包安裝
源代碼安裝分幾個(gè)步驟:首先下載源代碼包,通常是.gz或者.bz2結(jié)尾的;或者源代碼包以
后通過tar -xzvfjc 等命令進(jìn)行解壓;解壓完成以后進(jìn)入解壓目錄會(huì)看見一個(gè)confing的文件,然后通過./confing命令運(yùn)行該配置,當(dāng)然這個(gè)配置的過程通常都是收集一些環(huán)境信息和生成一些必要的文件,如果一些依賴的軟件沒有當(dāng)然需要裝好(用yum吧。。各種快);然后再執(zhí)行make命令進(jìn)行編譯;編譯結(jié)束以后執(zhí)行make install進(jìn)行安裝,這個(gè)過程一般是一些拷貝到不同目錄和一些配置文件生成。這樣一個(gè)標(biāo)準(zhǔn)的源代碼包就安裝完成了。

可以參考這篇博文:
http://criss.blog.51cto.com/1048459/464581四、腳本安裝
當(dāng)你下載tar包里面沒有config這個(gè)文件時(shí),很可能就是用腳本的方式安裝了。也是先解壓,然后查看下README或INSTALL這類說明,然后找到安裝腳本運(yùn)行即可。

五、APT包管理
