Linux 基礎教程 34 軟體包管理 RPM

2022-03-05 23:56:00 字數 3319 閱讀 2710

對於linux而言管理各類軟體,如安裝、解除安裝和公升級等是常有的事情和必備的技能。以centos為例,常用的安裝包命令有rpmyum

rpm安裝路徑

linux的目錄是有統一規範的,這個規範的作用是保證任何乙個軟體都能找到另一款軟體、檔案。

一般,rpm型別的檔案在安裝的時候,會先去讀取檔案內記載的設定引數內容,然後將該資料用於比較linux環境,從而找出是否有屬性依賴的軟體還沒有安裝的問題。使用rpm方式安裝的軟體,在完成安裝後,會將該軟體的相關資訊寫入到/var/lib/rpm目錄下的資料庫檔案中。該資料庫非常重要,如果軟體公升級必須依賴它,如版本比對就是從這個資料庫中讀取資料的。

rpm組成部分

rpm包含rpm資料庫rpm軟體包檔案rpm命令三部分。

linux系統中保留了當前安裝軟體的資料庫,路徑位於/var/lib/rpm,可使用file命令檢視目錄內容。

/var/lib/rpm目錄中的檔案全部都是資料庫檔案且為二進位制。
rpm軟體包與tar歸檔檔案類似:tar檔案含有要安裝到系統上的檔案,軟體包除了tar中的資訊還包含乙個rpm包頭,該包頭提供了有關軟體包的資訊,如名稱、安裝大小及其內容的簡短描述等。另軟體包還包含了屬性依賴資訊,即為了使檔案可被安裝和使用,必須安裝的其他軟體包、可執行檔案和庫檔案等。在linux安裝光碟中,軟體包檔案通常位於packages目錄中。軟體包檔案的名稱通常由下列幾條資訊構成:

名稱-版本-發行號.體系結構.rpm
以centos 7中mysql為例

名稱:mysql-community-common

版本:5.7.20

發行號:1

體系結構:el7.x86_64。el7代表centos 7.x系統,x86_64是指該軟體是針對哪種cpu架構開發的。

rpm命令是用來管理資料庫的工具,如下所示:

命令選項

作用-i

安裝軟體包

-u,-f

軟體包公升級

-e刪除軟體包

-q查詢安裝包

-a查詢的所有安裝包

-v顯示安裝的詳細過程

-h顯示安裝進度

--checksig

校驗簽名以確保其完整性和源發性

更多rpm命令解釋可以使用man rpm進行檢視
rpm安裝

rpm包安裝格式如下:

rpm -i rpm包的全路徑及檔名

rpm -ivh rpm包的全路徑及檔名

其中各引數解釋如下:

對於較大的rpm包,在安裝時需要使用-ivh,可以方便檢視在安裝過程中的相應資訊和進度。在安裝過程出現warning時並不影響軟體包的安裝,出現error則無法繼續安裝,需要排錯。
示例1:本地安裝vsftpd

可與rpm -i結合使用的引數如下所示:

命令選項

作用-h,--hash

安裝輸出#代表安裝進度

-v,--verbose

1個-v選項列印軟體包名稱,多個-v選項提供更多詳細資訊的輸出

--nodeps

即使不符合安裝前提條件,仍進行安裝

--replace-files

安裝時已有的檔案會被新檔案覆蓋替換

--force

即使已經安裝了軟體包,也要進行安裝

--test

不執行任何操作,只列印輸出

--noscripts

不執行與rpm安裝有關的任何指令碼

--prefix

指定安裝rpm包安裝路徑

rpm解除安裝

一旦安裝了軟體包,軟體包檔案則無關緊要了,該軟體包現在就是本地計算機上面的一條資料庫記錄。因此,不再使用軟體包檔名稱,如vsftpd-3.0.2-22.el7.x86_64.rpm,而僅僅使用軟體包名稱,如vsftpd-3.0.2-22.el7.x86_64來指該軟體包,使用

rpm -e packagename
進行刪除軟體包,其中-e代表earse。

說明1:packagename:可以包含版本等資訊,但不能包含字尾名.rpm

說明2:rpm -e vsftpd-3.0.2-22.el7.x86_64(正確)

rpm -e vsftpd-3.0.2-22.el7.x86_64.rpm(錯誤)

rpm公升級

使用rpm公升級軟體包非常方便簡單,主要引數是-u,當然也可以直接寫-uvh或-fvh,兩者區別如下:

-uvh:如果軟體包沒有安裝,則直接安裝,如果要安裝的軟體包是新的版本,則軟體會進行自動更新為新的版本。

-fvh:如果軟體包沒有安裝,則不會安裝,也即只能對已經安裝的軟體包進行公升級

rpm查詢

rpm軟體包查詢中與rpm -q package-name結合使用的一些選項和作用如下所示:

命令選項

作用-a

查詢所有已安裝的軟體包

-f filename

擁有檔案filename的軟體包

-p packagefilename

直接查詢軟體包檔案packagefilename

-i軟體包資訊包頭

-l列出軟體包所擁有的檔案

--requires

安裝包的先決條件

--provides

顯示安裝包提供的內容

--scripts

顯示軟體包的安裝指令碼

-last

按時間排序顯示系統上安裝的rpm包

linux基礎之軟體包管理

出自兄弟連講linux系列之6.1 27講 1.1命名規則 httpd 2.2.15 15.el6.centos.1.i686.rpm 包全名 httpd 軟體包名 2.2.15 軟體版本 15 發行次數 el6.centos 適合的linux平台 i686 適合的硬體平台 rpm rpm包副檔名 ...

Linux基礎 rpm軟體包管理

任務 掛載光碟檔案到 media目錄,進去 media目錄下的packages目錄,檢視系統已安裝的所有rpm包,檢視系統是否安裝dhcp軟體包,安裝dhcp軟體包,檢視dhcp軟體包的資訊,檢視dhcp軟體包中所包含的所有檔案,檢視 bin ls檔案是由哪個軟體包產生,解除安裝dhcp軟體包 時間...

linux軟體包管理

二進位制軟體包管理 rpm,yum rpm的使用 rpm包格式 stdo 1.7.2p1 5.e15.i386.rpm stdo 軟體名 1.7.2p1 版本號 5.e15 發行號 i386 硬體平台 1 安裝軟體包 一般不能指定安裝目錄 rpm ivh 軟體包全部名稱 rpm i stdo 1.7...