Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
本節(jié)講解如何使用 rpm 命令對(duì) RPM 二進(jìn)制包進(jìn)行安裝、卸載和升級(jí)操作。
我們以安裝 apache 程序?yàn)槔?。因?yàn)楹罄m(xù)章節(jié)還會(huì)介紹使用源碼包的方式安裝 apache 程序,讀者可以直觀地感受到源碼包和 RPM 包的區(qū)別。
RPM包默認(rèn)安裝路徑
通常情況下,RPM 包采用系統(tǒng)默認(rèn)的安裝路徑,所有安裝文件會(huì)按照類別分散安裝到表 1 所示的目錄中。
安裝路徑含 義
/etc/
配置文件安裝目錄
/usr/bin/
可執(zhí)行的命令安裝目錄
/usr/lib/
程序所使用的函數(shù)庫(kù)保存位置
/usr/share/doc/
基本的軟件使用手冊(cè)保存位置
/usr/share/man/
幫助文件保存位置
RPM 包的默認(rèn)安裝路徑是可以通過命令查詢的。
除此之外,RPM 包也支持手動(dòng)指定安裝路徑,但此方式并不推薦。因?yàn)橐坏┦謩?dòng)指定安裝路徑,所有的安裝文件會(huì)集中安裝到指定位置,且系統(tǒng)中用來查詢安裝路徑的命令也無法使用(需要進(jìn)行手工配置才能被系統(tǒng)識(shí)別),得不償失。
與 RPM 包不同,源碼包的安裝通常采用手動(dòng)指定安裝路徑(習(xí)慣安裝到 /usr/local/ 中)的方式。既然安裝路徑不同,同一 apache 程序的源碼包和 RPM 包就可以安裝到一臺(tái) Linux 服務(wù)器上(但同一時(shí)間只能開啟一個(gè),因?yàn)樗鼈冃枰加猛粋€(gè) 80 端口)。
實(shí)際情況中,一臺(tái)服務(wù)器幾乎不會(huì)同時(shí)包含兩個(gè) apache 程序,管理員不好管理,還會(huì)占用過多的服務(wù)器磁盤空間。
RPM 包的安裝
安裝 RPM 的命令格式為:
[root@localhost ~]# rpm -ivh 包全名
注意一定是包全名。涉及到包全名的命令,一定要注意路徑,可能軟件包在光盤中,因此需提前做好設(shè)備的掛載工作。
此命令中各選項(xiàng)參數(shù)的含義為:
例如,使用此命令安裝 apache 軟件包,如下所示:
[root@localhost ~]# rpm -ivh \
/mnt/cdrom/Packages/httpd-2.2.15-15.el6.centos.1.i686.rpm
Preparing...
\####################
[100%]
1:httpd
\####################
[100%]
注意,直到出現(xiàn)兩個(gè) 100% 才是真正的安裝成功,第一個(gè) 100% 僅表示完成了安裝準(zhǔn)備工作。
此命令還可以一次性安裝多個(gè)軟件包,僅需將包全名用空格分開即可,如下所示:
[root@localhost ~]# rpm -ivh a.rpm b.rpm c.rpm
如果還有其他安裝要求(比如強(qiáng)制安裝某軟件而不管它是否有依賴性),可以通過以下選項(xiàng)進(jìn)行調(diào)整:
apache 服務(wù)安裝完成后,可以嘗試啟動(dòng):
[root@localhost ~]# service 服務(wù)名 start|stop|restart|status
各參數(shù)含義:
例如:
[root@localhost ~]# service httpd start #啟動(dòng)apache服務(wù)
服務(wù)啟動(dòng)后,可以查看端口號(hào) 80 是否出現(xiàn)。命令如下:
[root@localhost ~]# netstat -tlun | grep 80
tcp 0 0 :::80:::* LISTEN
也可以在瀏覽器中輸入 Linux 服務(wù)器的 IP 地址,訪問這個(gè) apache 服務(wù)器。目前在 apache 中沒有建立任何網(wǎng)頁(yè),所以看到的只是測(cè)試頁(yè),如圖 2 所示。
圖 2 apache測(cè)試頁(yè)
RPM包的升級(jí)
使用如下命令即可實(shí)現(xiàn) RPM 包的升級(jí):
[root@localhost ~]# rpm -Uvh 包全名
-U(大寫)選項(xiàng)的含義是:如果該軟件沒安裝過則直接安裝;若沒安裝則升級(jí)至最新版本。
[root@localhost ~]# rpm -Fvh 包全名
-F(大寫)選項(xiàng)的含義是:如果該軟件沒有安裝,則不會(huì)安裝,必須安裝有較低版本才能升級(jí)。
RPM包的卸載
RPM 軟件包的卸載要考慮包之間的依賴性。例如,我們先安裝的 httpd 軟件包,后安裝 httpd 的功能模塊 mod_ssl 包,那么在卸載時(shí),就必須先卸載 mod_ssl,然后卸載 httpd,否則會(huì)報(bào)錯(cuò)。
軟件包卸載和拆除大樓是一樣的,本來先蓋的 2 樓,后蓋的 3 樓,那么拆樓時(shí)一定要先拆除 3 樓。
如果卸載 RPM 軟件不考慮依賴性,執(zhí)行卸載命令會(huì)包依賴性錯(cuò)誤,例如:
[root@localhost ~]# rpm -e httpd
error: Failed dependencies:
httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-1.el6.i686
httpd-mmn = 20051115 is needed by (installed) php-5.3.3-3.el6_2.8.i686
httpd-mmn = 20051115 is needed by (installed) mod_ssl-1:2.2.15-15.el6.
centos.1.i686
httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-10.el6.i686
httpd = 2.2.15-15.el6.centos.1 is needed by (installed) httpd-manual-2.2.
15-15.el6.centos.1 .noarch
httpd is needed by (installed) webalizer-2.21_02-3.3.el6.i686
httpd is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686
httpd=0:2.2.15-15.el6.centos.1 is needed by(installed)mod_ssl-1:2.2.15-15.el6.centos.1.i686
RPM 軟件包的卸載很簡(jiǎn)單,使用如下命令即可:
[root@localhost ~]# rpm -e 包名
-e 選項(xiàng)表示卸載,也就是 erase 的首字母。
RPM 軟件包的卸載命令支持使用“-nocteps”選項(xiàng),即可以不檢測(cè)依賴性直接卸載,但此方式不推薦大家使用,因?yàn)榇瞬僮骱芸赡軐?dǎo)致其他軟件也無法征程使用。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。