rpm&yum

今天我將軟件包管理的學習心得寫出來和大家一起分享,希望大家多多指點

Linux操作系統下的軟件包都是已經編譯打包好的,可以直接使用的應用程序,而程序要想在計算機上運行,必須要將程序編譯稱二進制源碼才能夠運行,所以一般程序的運行有四個步驟:

編輯 --> 編譯 --> 鏈接 --> 運行;編輯就是將運用程序以腳本的形式寫出來,而編譯是將運用程序解析爲計算機芯片能夠讀懂並執行的二進制命令,鏈接指調用程序運行時需要的各種庫,最後就是將軟件包運行;

程序是由二進制程序+庫文件+配置文件+幫助文件組成的;這些文件一般存放在:

二進制程序:/bin  /sbin;程序運行時需要執行的部分命令

庫文件:/lib;程序運行時需要調用的動態庫

配置文件:/etc;爲程序定義一些本地屬性,每次運行都會去讀取這些配置文件

幫助文件:/usr/share/man;對程序的幫助說明文件

 

Linux操作系統爲了防止一個軟件包過大,將軟件包分爲主包和子包,他們的命名方式分別是:

主包:主包名 版本號 平臺 擴展名

  如:bind-9.7.1-1.i586.el5.rpm   

  包名爲bind,主版本號爲9,此版本號爲7,修改號爲1,可以運行的硬件平臺爲i586,擴展名爲.el5.rpm

     軟件包做重大源碼修改時會更改主版本號;添加或修改一些子功能時修改次版本號;只是對一些軟件BUG或者修改了某一項小功能時修改修改版本號

子包:主包名 版本號 修改號 平臺 擴展名

 

RPM軟件包管理器:PRM is Package Manager

我們可以使用RPM來完成實現以下這些功能:

安裝:-i 包全名    安裝某一個程序包

-v    結合-i使用,顯示安裝進度過程

-vv   顯示更詳細的安裝過程

-vvv  顯示最詳細的安裝過程

-h    -v結合使用,以#表示安裝進度,一個#表示2%進度

--nodeps  安裝軟件包時忽略軟件包之間的依賴關係;不建議使用,因爲這時候安裝上的軟件可能不能使用

--replacepkgs  重新安裝,將已經安裝的替換掉;一般在軟件包出現故障時使用

--force    強行安裝,此時無論如何該軟件包都會安裝成功;不建議使用

--test     僅測試某軟件包是否可以安裝到linux操作系統下

 

 

 

查詢:-q 包名   查詢該軟件包是否已安裝

-qa        查詢該系統上已安裝的所有包,如果指向查看某一個,則使用管道交給grep進行處理,支持通配符

-qi         查詢指定軟件包的詳細信息

-ql         查詢指定軟件包安裝成功之後生成的文件列表,一般會有甚多,建議使用less進行分頁查看

-qf 文件名        查詢指定文件是由哪個軟件包安裝生成的

-qc         查詢指定軟件包安裝之後的配置文件

-qd         查詢指定軟件包的幫助文件

-q --scripts   查詢指定軟件包中包含的腳本;分爲四類“安裝前,安裝後,卸載前,卸載後”

此時查詢的都是軟件包已經安裝之後的信息,有的時候我們需要在安裝之前知道軟件包安裝之後會有那些文件產生,以及其他的一些信息,此時我們就需要安裝前的查詢:

-qpi 軟件包名 查詢指定的未安裝的軟件包的詳細信息、

使用方法與-q一樣,只是在-q後加一個-p即可進行安裝前的查詢

 

 

 

升級:-U 新版本軟件名      將軟件升級到指定的版本,如果系統上有老版本,則將其升級,如果沒有老版本就安裝;一般與-vh參數一起使用

-F 新版本軟件名     將軟件升級到指定版本,此時如果上有老版本,就

將其升級,如果沒有老版本,就退出

--oldpackage 老版本軟件名 降級已安裝的軟件;一般用於升級之後新版軟

件沒有了自己經常使用的某些功能,將其退到以前的版本

 

 

卸載:-e 包名    卸載指定已安裝的軟件包

--nodeps     強行卸載;此時之前依賴與這個軟件包的其他軟件將不能繼續正

常使用,不建議強行卸載

 

校驗:爲了確保要安裝的軟件的合法性及其完整性,以確保要安裝的軟件對系統沒有***性;管理員安裝軟件之前必須要先進行校驗,如果沒有出現任何信息,則表示這個軟件包沒有被做過任何改動

-V 包名

-Va  列出當前系統上所有可能被修改過的文件

-Vp 軟件名 查詢這個軟件包中可能被修改過的文件

-Vf 文件名 列出某個軟件是否被修改過

-V檢驗的信息有八類,結果顯示爲:S.5....T

S:文件的大小是否被修改過,如果沒被修改過就顯示爲點,其他類似

M:文件的類型是否被修改過

5:文件的MD5加密碼是否被修改過

D:主次設備號是否被修改過

L:軟件Link屬性是否被修改過

U:文件屬主是否被修改過

G:文件屬組是否被修改過

T:文件最後一次訪問時間是否改變過;查看文件時間戳

Redhat Linux系統中的加密公鑰存放在:“/etc/pki/rpm-gpg/”下,名字叫做

RPM-GPG-KEY-redhat-release

我們要將加密公鑰導入進軟件包之後纔可以進行軟件包的校驗,導入指令:

# rpm --import /etc/pki/rpm-gpg RPM-GPG-KEY-redhat-release

數據庫的重建:

--rebuilddb 重新創建數據庫,此時會不管一切的重頭建立

--initdb 重新初始化數據庫,如果數據庫已存在,則不執行

 

軟件安裝之後我們要對其進行管理,而linux下所有配置信息都是以文本形式存在的,這些配置文件存放在什麼位置:

 

在使用rpm對文件進行安裝時,需要經常考慮軟件包彼此之間的依賴關係,而這些依賴關係解決起來非常麻煩,往往一個軟件的安裝就需要很長的時間,這極大的增加了系統管理的難度,爲了解決這一難題,我們引入了yumyellowdog update modifier,他可以爲我們解決軟件包之間的依賴關係,使得我們的軟件包安裝變得不再困難

YumC/S架構,工作時需要一個yum服務器,客戶端登錄之後才能正常工作,而服務器端提供的功能就是yum倉庫,倉庫裏邊存放的是rpm包的元數據文件

元數據文件有:“primary.xml.gzfilelists.xml.gzother.xml.gzrepomd.xml”分別記載的:

一、倉庫內所有rpm包列表及包之間的依賴關係,安裝之後能夠生成的文件列表

二、當前倉庫內所有rpm包的所有文件列表

三、rpm包的額外信息,如包的修改日誌等

四、記錄了其他三個文件的時間戳和校驗和(客戶端每次都要下載此文件)

使用yum進行軟件包管理:

安裝:install 包名    安裝指定的軟件包

升級:update | update_to  升級指定的軟件包或將指定的軟件包升級到指定版本

卸載:remove   卸載指定的軟件包

查看:list | info  列表查看包信息

all        顯示全部信息

available   顯示倉庫中可用的,但卻沒有安裝的軟件包

installed   顯示所有已經安裝的

updates    顯示所有可用的升級版本

清除緩存:clean     使用yum安裝軟件包時,yum會使用本地緩存目的將元數據文件保存下來,清除緩存就是將已經下載的清除掉,然後重新讀取新的元數據文件

顯示可用的yum倉庫:repolist

all       顯示所有yum

enabled   僅顯示可使用的yum庫,系統默認

disabled   僅顯示不可用的yum

groupinstall:安裝指定的軟件包組

Yum的配置文件存放在:“/etc/repos.d/”下,需要我們手工創建或這更改,手工創建時,文件必須以“.repo”結尾,且一個文件可以定義多個yum庫,文件內容爲:

[repo_name] 不能和已經存在的repo文件重名

name= 這個配置文件的描述信息

baseurl= yum倉庫所在地,可以使用三種形式指定

ftp:// 

http:// 

file:///   最後一個斜線表示根目錄

enabled={0,1} 是否啓用這個yum

gpgcheck={0,1} 是否啓用gpg機制驗證軟件包

gpgkey= 如果啓用gpg驗證,則給出驗證密鑰所在地,如果不允許則此處可省略

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章