對於linux而言管理各類軟體,如安裝、解除安裝和公升級等是常有的事情和必備的技能。以centos為例,常用的安裝包命令有rpm和yum。
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...