国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術(shù)知識庫 >  數據庫 >  相關(guān)技術(shù)支持 >  Linux rmp命令管理(安裝、升級和卸載)RMP包方法詳解

Linux rmp命令管理(安裝、升級和卸載)RMP包方法詳解

2019-02-27 17:48:42 15491

我們先安裝 apache 程序。之所以安裝 apache 程序,是因為我們后續安裝源碼包時(shí)也計劃安裝 apache 程序,這樣就能初步認識到源碼包和 RPM 包的區別。不過(guò)需要注意的是,同一個(gè)程序的RPM 包和源碼包可以安裝到一臺服務(wù)器上,但是只能啟動(dòng)一個(gè),因為它們需要占用同樣的 80 端口。不過(guò),如果真在生產(chǎn)服務(wù)器上,那么一定不會(huì )同時(shí)安裝兩個(gè) apache 程序,容易把管理員搞糊涂,而且會(huì )占用更多的服務(wù)器磁盤(pán)空間。

RPM 包默認安裝路徑

源碼包和 RPM 包安裝的程序為什么可以在一臺服務(wù)器上呢?主要是因為安裝路徑不同,所以不會(huì )覆蓋安裝。RPM 包一般采用系統默認路徑安裝,而源碼包一般通過(guò)手工指定安裝路徑(一般安裝到 /usr/local/ 中)安裝。

RPM 包默認安裝路徑是可以通過(guò)命令査詢(xún)的,一般安裝在如表 1 所示的目錄中。

表 1 RPM包默認安裝路徑
安裝路徑含 義
/etc/配置文件安裝目錄
/usr/bin/可執行的命令安裝目錄
/usr/lib/程序所使用的函數庫保存位置
/usr/share/doc/基本的軟件使用手冊保存位置
/usr/share/man/幫助文件保存位置


RPM 包難道就不能手工指定安裝路徑嗎?當然是可以的,但是一旦手工指定安裝路徑,所有的安裝文件就會(huì )安裝到手工指定位置,而不會(huì )安裝到系統默認位置。而系統的默認搜索位置并不會(huì )改變,依然會(huì )去默認位置之下搜索,當然系統就不能直接找到所需的文件,也就失去了作為系統默認安裝路徑的一些好處。所以我們一般不會(huì )指定 RPM 包的安裝路徑,而使用默認安裝路徑。

RPM包的安裝

[root@localhost ~]# rpm -ivh 包全名
#注意一定是包全名。如果是跟包全名的命令,則要注意路徑,因為軟件包在光盤(pán)當中

選項:

  • -i:安裝(install);

  • -v:顯示更詳細的信息(verbose);

  • -h:打印 #,顯示安裝進(jìn)度(hash);


例如,安裝 apache 軟件包,注意出現兩個(gè) 100% 才是正確安裝,第一個(gè) 100% 僅是在準備,第二個(gè) 100% 才是正確安裝。如下所示:

[root@localhost ~]# rpm -ivh \
/mnt/cdrom/Packages/httpd-2.2.15-15.el6.centos.1.i686.rpm
Preparing...
####################
[100%]
1:httpd
####################
[100%]

如果打算同時(shí)安裝多個(gè)軟件包呢?可以用一條命令同時(shí)安裝,將多個(gè)軟件包用空格分開(kāi)就可以了。

[root@localhost ~]# rpm -ivh a.rpm b.rpm c.rpm
#一次安裝多個(gè)軟件包

如果還有其他安裝要求,比如想強制安裝某個(gè)軟件包而不管它是否有依賴(lài)性,就可以通過(guò)選項進(jìn)行調整:

  • -nodeps:不檢測依賴(lài)性安裝。軟件安裝時(shí)會(huì )檢測依賴(lài)性,確定所需的底層軟件是否安裝,如果沒(méi)有安裝則會(huì )報錯。如果不管依賴(lài)性,想強制安裝,則可以使用這個(gè)選項。注意:這樣不檢測依賴(lài)性安裝的軟件基本上是不能使用的,所以不建議這樣做。

  • -replacefiles:替換文件安裝。如果要安裝軟件包,但是包中的部分文件已經(jīng)存在,那么在正常安裝時(shí)會(huì )報"某個(gè)文件已經(jīng)存在"的錯誤,從而導致軟件無(wú)法安裝。使用這個(gè)選項可以忽略這個(gè)報錯而覆蓋安裝。

  • -replacepkgs:替換軟件包安裝。如果軟件包已經(jīng)安裝,那么此選項可以把軟件包重復安裝一遍。

  • -force:強制安裝。不管是否已經(jīng)安裝,都重新安裝。也就是-replacefiles和-replacepkgs的綜合。

  • -test:測試安裝。不會(huì )實(shí)際安裝,只是檢測一下依賴(lài)性。

  • -prefix:指定安裝路徑。為安裝軟件指定安裝路徑,而不使用默認安裝路徑。注意:如果指定了安裝路徑,軟件沒(méi)有安裝到系統默認路徑中,那么系統會(huì )找不到這些安裝的軟件,需要進(jìn)行手工配置才能被系統識別。所以,我們一遍采用默認路徑安裝RPM包。


apache 服務(wù)安裝成功后,嘗試啟動(dòng)。命令如下:

[root@localhost ~]# service 服務(wù)名 start|stop| restart|status

參數:

  • start:?jiǎn)?dòng)服務(wù);

  • stop:停止服務(wù);

  • restart:重啟服務(wù);

  • status: 査看服務(wù)狀態(tài);


例如:

[root@localhost ~]# service httpd start #啟動(dòng)apache服務(wù)

服務(wù)啟動(dòng)之后,就可以査看端口號 80 是否出現。命令如下:

[root@localhost ~]# netstat -tlun | grep 80
tcp 0 0 :::80 :::* LISTEN

我們也可以在瀏覽器中輸入 Linux 服務(wù)器的 IP 地址,訪(fǎng)問(wèn)這個(gè) apache 服務(wù)器。目前在 apache 中沒(méi)有建立任何網(wǎng)頁(yè),所以看到的只是測試頁(yè),如圖 2 所示。



圖 2 Apache測試頁(yè)


注意,RPM 包默認保存在系統光盤(pán)的 Packages(注意 P 大寫(xiě))目錄中,所以在安裝軟件前需要掛載光盤(pán)。例如:

mkdir/mnt/cdrom <-建立掛載點(diǎn)
mount /dev/cdrom /mnt/cdrom <-掛載光盤(pán)

我們一直在說(shuō)依賴(lài)性很麻煩,那么依賴(lài)性報錯是什么樣呢?我們來(lái)繼續說(shuō)說(shuō) gcc 這個(gè)軟件,剛剛我們在寫(xiě) hello.c 的時(shí)候假設這個(gè)軟件已經(jīng)安裝成功了。其實(shí),如果采用"基本服務(wù)器"方式安裝 Linux 系統,那么 gcc 這個(gè)軟件是沒(méi)有安裝的,需要我們手工安裝,但是安裝這個(gè)軟件是會(huì )報依賴(lài)性錯誤的。

[root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/ gcc-4.4.6-4.el6.i686.rpm
error: Failed dependencies: <―依賴(lài)性錯誤
cloog-ppi >= 0.15 is needed by gcc-4.4.6-4.el6.i686
cpp = 4.4.6-4.el6 is needed by gcc-4.4.6-4.el6.i686
glibc-devel >= 2.2.90-12 is needed by gcc-4.4.6-4.el6.i686

這里的依賴(lài)性很明顯,需要我們先安裝 cloog-ppl、cpp 和 glibc-devel 三個(gè)軟件,其中:

  • ">="表示版本要大于或等于所顯示版本;

  • "<="表示版本要小于或等于所顯示版本;

  • "="表示版本要等于所顯示版本;


我們當然可以手工安裝,只是比較麻煩。那么,有辦法讓它自動(dòng)解決依賴(lài)性,直接安裝嗎?有,我們可以使用 yum 在線(xiàn)安裝工具,它會(huì )自動(dòng)安裝依賴(lài)的軟件,幫助我們解決依賴(lài)性。所以,再賣(mài)一個(gè)關(guān)子,我們不在這里安裝 gcc,留到安裝 yum 的時(shí)候讓 gcc 自動(dòng)安裝。

RPM包的升級

[root@localhost ~]# rpm -Uvh 包全名

選項:

  • -U(大寫(xiě)):升級安裝。如果沒(méi)有安裝過(guò),則系統直接安裝。如果安裝過(guò)的版本較低,則升級到新版本(upgrade);

[root@localhost ~]# rpm -Fvh 包全名

選項:

  • -F(大寫(xiě)):升級安裝。如果沒(méi)有安裝過(guò),則不會(huì )安裝。必須安裝有較低版本才能升級(freshen);

RPM包卸載

卸載是有依賴(lài)性的。比如,在安裝的時(shí)候,要先安裝 httpd 軟件包,再安裝 httpd 的功能模塊 mod_ssl 包。那么,在卸載的時(shí)候,一定要先卸載 mod_ssl 軟件包,再卸載 httpd 軟件包,否則就會(huì )報錯。軟件包卸載和拆除大樓是一樣的,你要拆除 2 樓和 3 樓,一定要先拆除 3 樓。

刪除格式非常簡(jiǎn)單,如下:

[root@localhost ~]# rpm -e 包名

選項:

  • -e 卸載(erase);


如果不按依賴(lài)性卸載,就會(huì )報依賴(lài)性錯誤。例如:

[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

當然,卸載命令是支持"--nocteps"選項的,可以不檢測依賴(lài)性直接卸載。但是,如果這樣做,則很可能導致其他軟件包無(wú)法正常使用,所以并不推薦這樣卸載。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->