RPM包的安裝與升級

浮沉VS若夢發表於2020-06-07

說了這麼多,終於可以開始安裝了,我們先安裝apache程式。之所以選擇安裝apache程式,是因為我們後續安裝原始碼包時也計劃安裝apache程式,這樣就能初步認識到原始碼包和RPM包的區別。不過需要注意的是,同一個程式的RPM包和原始碼包可以安裝到一臺伺服器上,但是隻能啟動一個,因為它們需要佔用同樣的80埠。不過,如果真在生產伺服器上,那麼一定不會同時安裝兩個apache程式,容易把管理員搞糊塗,而且會佔用更多的伺服器磁碟空間。

  1. RPM 包預設安裝路徑

原始碼包和RPM包安裝的程式為什麼可以在同一臺伺服器上呢?主要是因為安裝路徑不同,所以不會覆蓋安裝。RPM包一般採用系統預設路徑安裝,而原始碼包一般通過手工指定安裝路勁(一般安裝到/usr/local/中)安裝。
RPM包預設安裝路徑是可以通過合令查詢的,一般安裝在如表10-1所示的目錄中。

目錄說明
/etc/配置檔案安裝目錄
/usr/bin/可執行的命令安裝目錄
/usr/lib/程式所使用的函式庫儲存位置
/usr/share/doc/基本的軟體使用手冊儲存位置
/usr/share/man/幫助檔案儲存位置

RPM包難道就不能手工指定安裝路徑嗎?當然是可以的,但是一旦手工指定安裝路徑,所有的安裝檔案就會安裝到手工指定位置,而不會安裝到系統預設位置。而系統的預設搜尋位置並不會改變,依然會去預設位置之下搜尋,當然系統就不能直接找到所需的檔案,也就失去了作為系統預設安裝路徑的一些好處。所以我們一般不會指定RPM包的安裝路徑,而使用預設安裝路徑。

  1. RPM包的安裝
[root@localhost ~]# rpm –ivh 包全名 
#注意一定是包全名。如果跟包全名的命令要注意路徑,因為軟體包在光碟當中
選項說明
-iinstall安裝(install);
-v顯示更詳細的資訊(verbose);
-h列印#,顯示安裝進度(hash);
–nodeps不檢測依賴性安裝。軟體安裝時會檢測依賴性,確定所需的底層軟體是否安裝。如果沒有安裝則會報錯。如果我不管依賴性,想強行安裝,可以使用這個選項。注意: 這樣不檢測依賴性安裝的軟體基本是不能使用的,所以不建議這樣做;
–replacefiles替換檔案安裝。如果安裝軟體包,可是包中部分檔案已經存在,那麼正常安裝時候,會報錯“某個檔案已經存在”從而導致軟體無法安裝,使用這個選項可以忽視這個報錯,而覆蓋安裝;
–replacepkgs替換軟體包安裝。如果軟體包已經安裝,此選項可以把軟體包重複安裝一遍;
–force強制安裝。不管是否已經安裝,都重新安裝。就是replacefiles 和 replacepkgs 的綜合;
–test測試安裝。不會實際安裝,只是檢測一下依賴性;
–prefix指定安裝路徑。為安裝軟體指定安裝路徑,而不使用預設安裝路徑。注意:如果指定了安裝路徑,軟體沒有安裝到系統預設路徑中的話,系統會找不到這些安裝的軟體,需要進行手工配置才能被系統識別。所以 rpm 包我們一般都採用預設路徑安裝,例如:rpm -ivh --prefix=/usr/local/httpd;

例如,安裝apache軟體包,注意出現兩個100%才是正確安裝,第一個100%僅是在準備,第二個100%才是正確安裝。

[root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.2.15-53.el6.centos.x86_64.rpm

如果打算同時安裝多個軟體包呢?可以用一條命令同時安裝,將多個軟體包用空格分開就可以了。

[root@localhost ~]# rpm -ivh a.rpm b.rpm c.rpm
#一次安裝多個軟體包

RPM包預設儲存在系統光碟的Packages(注意P大寫)目錄中,所以在安裝軟體前需要掛載光碟,例如:

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
  1. RPM 包升級
[root@localhost ~]# rpm –U|Fvh 包全名
選項說明
-U升級安裝,如果沒有安裝過,系統直接安裝。如果安裝過的版本較舊,則升級到新版本(upgrade);
-F升級安裝,如果沒有安裝過,則不會安裝。必須安裝有較舊版本,才能升級(freshen);

相關文章