軟體安裝 RPM SRPM與YUM

2021-07-25 06:47:04 字數 4068 閱讀 6456

1、軟體安裝方式

(1)目前比較流行的linux軟體安裝方式是dpkg和rpm。

(2)解決軟體包依賴的問題

前面提到過可以使用ldd來觀察軟體的依賴關係,可以將軟體安裝時的依賴關係做成列表,這樣在安裝時,就可以根據列表去自動安裝相關依賴包。

2、rpm

2.1、rpm概念

(1)rpm是以一種資料庫記錄的方式,來將你所需要的軟體安裝到linux系統的一套管理機制。它最大的特點就是將你要安裝的軟體先進行編譯,並且打包成為rpm機制的包裝檔案,並記錄這個軟體安裝時候的依賴包。

(2)安裝時,rpm會先依照軟體裡頭的資料查詢所需的依賴包是否滿足,滿足則予以安裝,不滿足則不予安裝。安裝的時候將該軟體的資訊整個寫入rpm的資料庫中,以便之後的查詢、驗證與解除安裝。

(3)缺點:

由於使用rpm安裝的軟體都是預先編譯好的,所以你的主機環境必須與rpm當初編譯軟體的環境相同才行。

2.2、rpm安裝

(1)rpm安裝完軟體之後,該軟體的相關資訊會被寫入

/var/lib/rpm/目錄下的資料庫檔案中。這個目錄內的資料的作用:

(2)rpm命令

rpm -【ivh】 ***.rpm/**

-i install的意思

-v 輸出詳細的安裝資訊

-h 以安裝資訊列顯示安裝進度

(3)rpm安裝時的相關引數選項

--nodeps

不顧錯誤提示強行安裝軟體

--replacefiles

覆蓋已安裝的部分檔案

--replacepkgs

重複安裝軟體

--force

--replacefiles與--replacepkgs的結合

--test

測試安裝

--justdb

如果rpm資料庫損壞,可使用此指令更新軟體資訊

--nosignature

略過數字簽名檢查

--prefix

後面跟路徑,指定軟體的安裝目錄

--noscripts

禁止rpm自動執行某些指令

2.3、rpm公升級與更新

(1)rpm -uvh 軟體包

若後面的軟體沒有安裝過,則予以安裝。

(2)rpm -fvh 軟體包

若後面的軟體沒有安裝過,則不予安裝。

2.3、rpm查詢

(1)rpm -qa

-q 僅查詢

-qa 列出所有已安裝的軟體

(2) rpm -q【licdr】 已安裝的軟體名

-qi 列出該軟體的詳細資訊,包括開發商、版本與說明等

-ql 列出該軟體的所有檔案與目錄

-qc 列出該軟體的所有配置檔案(/etc/底下的)

-qd 列出該軟體的所有說明檔案(與man相關)

-qr 列出該軟體的依賴包的資訊

(3) rpm -qf 檔名

找出後面的檔名屬於哪個軟體

(4) rpm -qp【licdr】 軟體名

可以查出未安裝的軟體在rpm內的資訊

2.4、rpm驗證與數字簽名

(1)rpm -va

列出系統上面所有可能被改過的檔案

(2)rpm -v 已安裝的軟體名

若該軟體被改動過,才會列出來

(3)rpm -vp rpm檔名

列出該檔案可能被改動過的rpm檔案

(4)rpm -vf 系統上的某個檔案

列出某個檔案是否被改動過

2.5、rpm解除安裝軟體

(1)rpm -e 軟體名

軟體的解除安裝是從最上層開始的,即當軟體被解除安裝時,該軟體沒有被其他軟體依賴,才能解除安裝。

(2)rpm --rebuilddb

因為軟體的安裝,解除安裝常常會影響rpm資料庫,所以使用該指令可以重建資料庫。

3、srpm

3.1、srpm概念

(1)srpm就是source rpm的意思,也就是這個rpm裡含有源**,也是為了解決rpm環境強一致性的問題。

(2)副檔名

通常srpm的副檔名是以***.src.rpm這種格式來命名的。

那srpm是提供的源**,為什麼不使用tarball的方式安裝呢?

這是因為srpm雖然提供的是源**,但是同時也提供了軟體的依賴關係,以及引數配置檔案(configure和makefile)。

(3)安裝srpm過程

3.2、srpm安裝

(1)rpmbuild 選項 軟體包

--rebuild 編譯、打包後面的軟體。生成rpm包,需要再使用rpm命令安裝

--recompile 編譯、打包並安裝軟體

(2)srpm使用的路徑與需要的軟體

(3)srpm的編譯指令,用於製作自己的rpm軟體包

rpmbuild -【ba/bb】 ***.spec

-ba 生成rpm與srpm檔案

-bb 僅生成rpm檔案

4、軟體版本、適用平台以及編譯次數

(1)如何通過rpm檔名得知軟體版本及平台等資訊?

例如:rp-ppose-3.1-5.i386.rpm

rp-ppose 軟體名稱

3.1 軟體版本資訊

5 編譯打包次數,重複編譯的原因可能是因為一些bug等

.i386 作業系統平台

.rpm 副檔名

(2)作業系統平台

5、yum

5.1、yum概念

(1)當用rpm安裝軟體時,如果軟體的依賴關係不滿足,即軟體的依賴包不存在,則不予安裝。yum就是為了解決rpm軟體包的依賴性問題

(2)一般的軟體廠商為了節省使用者的資料量,會將軟體的內容分為一般使用與開發使用兩大類。所以你常常會看到類似pam-x.x.rpm與pam-devel-x.x.rpm之類的檔名。

(3)yum機制:

之前說rpm會記錄乙個軟體依賴關係的列表,yum在安裝軟體的時候,先到這個列表去找,同時與系統內已安裝的軟體相比較,如果沒有安裝就連這些依賴的軟體一起安裝。通過這種機制就解決了軟體依賴的關係。

(4)安裝與公升級

①安裝②公升級

5.2、yum server

我們要使用yum功能時,必須先找到合適的yum server,實際上centos在發行時已經制定好了很多供全世界使用的軟體映象倉庫,理論上只要我們能連上網,就可以使用yum。

5.3、yum查詢

(1)yum 選項 引數

①選項:

-y 當yum等待使用者輸入時,這個選項自動提供yes的響應

--installroot=路徑 改變軟體的安裝路徑

②引數:

search 搜尋軟體名稱或者描述的關鍵字

list 類似於rpm -qa

info 類似於rpm -qai

provides 類似rpm -qf

這些引數後面可以接一些字串,或萬用字元

5.4、yum安裝

yum install 軟體名

5.5、yum公升級

yum update 軟體名

5.6、yum解除安裝

yum remove 軟體名

5.7、yum配置檔案

(1)yum映象站的配置檔案為:

/etc/yum.repos.d/容器名.repo

yum server可以使用多個容器,所以配置檔名不一樣

(2)查詢yum server所使用的容器

yum repolist all

5.8、yum清除快取

上面提到修改yum映象的配置檔案,但是如果存在一些舊資料,可能會更新不了。這時候我們清理下舊資料就可以更新了。

yum clean 【packages | headers | all】

all 將所有容器資料都刪除

5.9、yum的群組功能

yum 選項 引數

grouplist 列出所有已安裝的套件組,例如development tools

groupinfo 後面接群組名,可查出該群組內的所有套件名

groupinstall 安裝一整套元件

groupremove 移除一整套元件

軟體安裝與公升級 yum

yum是通過分析rpm的標頭資料後,根據各軟體的相關性製作出屬性相依時的解決方案,自動處理軟體的關聯問題,實現軟體安裝 公升級 移除。為了方便使用者軟體安裝 公升級,distribution 會先發布軟體,然後將軟體放置在乙個伺服器上,這個伺服器可以被稱為yum源。目前有許多的yum源,使用者在使用...

rpm與yum安裝軟體

一 使用rpm包安裝 1 安裝 rpm ivh 包全名 i install 安裝選項 v verbose 顯示詳細資訊 h hash 顯示進度2 公升級 rpm uvh 包全名 u upgraed 3 解除安裝 rpm e 包名 e erase 刪除二 使用yum命令安裝 1 查詢所有可用軟體安裝包...

yum安裝軟體

rpmp安裝軟體包的雖然方便,但是需要手工解決軟體包的依賴關係。很多時候安裝乙個軟體包需要安裝多個其他軟體包,還有不同版本的相容性問題,很複雜。yum解決了這些問題,yum是rpm的前端程式,設計的主要目的就是為了自動解決rpm的依賴關係,有以下優點 1.自動解決依賴關係 2.可以對rpm進行分組,...