天天看點

Rpm 軟體包管理

1:rpm 包管理

1:封包件名說明  httpd-2.2.15-45.el6.centos.x86_64.rpm

httpd:軟體名稱,2.2.14:軟體版本2為主版本後面的2為次版本号     45:為重複編譯次數            el6.centos.x86_64:适用系統平台為enterprise linux6,centot       rpm:為包格式

2:rpm 包安裝後,該軟體的相關資訊會被寫入/var/lib/rpm,的這個資料庫中。

3:相關的安裝路徑

二進制程式:/bin,/sbin , /usr/bin, /usr/sbin

自身庫檔案:/lib64 , /usr/lib64

配置檔案:/etc

幫助檔案:/usr/share/doc ,/usr/share/man     ,man檔案,info檔案,

4: rpm的基本安裝

rpm -ivh xxx.rpm

Rpm 軟體包管理

i:指install  v:檢視詳細安裝畫面 -h:顯示安裝進度

rpm -ivh xxx.rpm --test

Rpm 軟體包管理

--test:測試安裝環境,如上圖就測試出安裝環境具有軟體依賴性問題。

rpm -ivh xxx.rpm --nodeps

Rpm 軟體包管理

--nodeps:強制安裝,忽略依賴關系,

rpm -ivh xxx.rpm --replacepkgs

Rpm 軟體包管理

--replacepkgs: 重新安裝

5:rpm 的更新安裝

 rpm -Uvh xxx.rpm   如果有舊版程式包,則更新之;如果沒有,則安裝之;

 rpm -Fvh xxx.rpm    如果有舊版程式包,則更新之;如果沒有,則不安裝;

6:rpm 的解除安裝

 rpm -e xxx.rpm

 如果碰到要依賴的包,就使用--nodeps

Rpm 軟體包管理

7:rpm包的查詢:

 rpm -q[l,i,c,d,R] 已安裝的軟體包名

 rpm -qa  : 檢視所有已安裝軟體

 rpm -q   :查詢軟體安裝沒有

 rpm -ql  :查詢軟體的安裝路徑 

 rpm -qi  :查詢軟體說明

 rpm -qc  :查詢軟體的配置檔案,(一般在/etc)

 rpm -qd  : 查詢軟體的幫助

 rpm -qR  :列出和該軟體的依賴軟體包含的檔案

 rpm -qf  :查詢此處的檔案由哪個程式包安裝生成,

    比如我們找 /etc/yum.conf 屬于那個包生成的,

Rpm 軟體包管理

 rpm -q 軟體包名 ----scripts   : 查詢程式包相關的腳本

Rpm 軟體包管理

  preinstall: 安裝前腳本 

  postinstall:安裝後腳本

  preuninstall: 解除安裝前腳本

  postuninstall: 解除安裝後腳本

注意: rpm -qp[l,d,c,d,R] 沒有安裝的軟體包,p:針對查詢沒有安裝的軟體包的。

8:軟體包校驗

  rpm -Va

  rpm -V 已安裝的軟體包名

  rpm -Vf 系統上的某個檔案

 範例:rpm -V httpd 

 範例:rpm -Vf /etc/httpd/conf/httpd.conf

Rpm 軟體包管理

  如上圖所示,當用rpm -V httpd 時沒有任何提示,就表示這個包沒有被改過!

          當用rpm -Vf 查詢具體檔案http.conf時,也提示沒有被改過。但是當http.conf被改過後,就出來S.5....T.  c 這類消息。

 那這類消息是什麼意思呢:分别入下

Rpm 軟體包管理

所就當一個配置檔案所有資訊都被改過,就會出現:SM5DLUGT c filename

上圖httpd.conf 檔案是以就出現了c 也就是config file。也就說這個檔案的類型是個配置檔案。

檔案類型

  c:配置檔案(config file)

  d:檔案的資料檔案(documentation)

  g:鬼檔案~通常是該檔案不被某個軟體包括,較少發生!(ghost file)

  l:許可證檔案(license file)

  r:自述檔案

經過驗證功能,就知道那些檔案被改過!這個很重要。

數字簽名:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

-----------------------------------------------------------------------------------------

yum  線上安裝

  1:在進行yum 安裝時先配置 yum源。以163源為例:

Rpm 軟體包管理

[base]:倉庫的名子,随意取名,但不對相同

name:說明倉庫意義,随意說明

baseurl=這個最重要,倉庫的通路路徑

enabled={1|0}1,表示啟用。0表示不啟用  預設為起動

gpgcheck={1|0}1,驗證gpg。0表示不驗證

cost=定義此倉庫開銷,預設為1000

補充要點:

  $releasever:程式的版本,對Yum而言指的是redhat-relrase版本。隻替換為主版本号,如Redhat6.5 則替換為6

  $arch:系統架構

  $basharch:系統基本架構,如i686,i586等的基本架構為i386

  $YUM0-9:在系統定義的環境變量,可以在yum中使用

 2:yum 具體指令

   yum repolist [all | enabled(預設) | disabled] :列出yum 源

   範例:yum repolist all  列出所有的源

   yum clean [all|packeages(包)|metadata(中繼資料)|expire-cache(過期資料)|rpmdb(rpm資料)plugins]:清理緩存

   範例:yum clean all 清理所有緩存

   yum list [all|installed(已安裝過的)|available(可用)]:列出yum包

   範例:yum list installed 列出已安裝的包

   yum info :顯示包的詳細資訊(不管這個包有沒有安裝)

   範例: yum info httpd

  yum install  :接要安裝的軟體包

   範例: yum install httpd

  yum reinstall  :重新的軟體包名

   範例: yum reinstall httpd

  yum update :接要更新的軟體包

    範例:yum update httpd

    注意:如查直接 yum update 就這個系統更新了(慎用)

  yum check-update:檢查可更新的包

  yum [erase|remove] :接 解除安裝的軟體包,依賴包也會被解除安裝掉。

    範例:yum  erase httpd 

  yum whatprovides|provides  查詢某個檔案是誰提供的。

   範例:yum provides /etc/yum.conf

3:yum 組包管理

  yum grouplist  :列出所有的包組

  yum groupinfo   :顯示包組資訊

  yum groupinstall :安裝包組

    範例:yum groupinstall "Development Tools"

    centos 6,常用的開發包為”Development tools“和"Server Platform Development"

  yum groupremove  :解除安裝組

-------------------------作業練習-----------------------------------------------

 1:把本地CD光牒做為yum源方法如下:

    mount /dev/cdrom /media/cdrom/

   在/etc/yum.repos.d/下建立一個repo 檔案

Rpm 軟體包管理

   然後清除緩存測試安裝:

   yum clean all

   yum repolist all

Rpm 軟體包管理

    上圖顯示正常yum就可以安裝了!

2:建立個阿裡雲repo檔案

    [base]

    name=Centos-Base-aliyun.com

    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/

    enabled=1

    gpgcheck=1

    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

   然後 yun clean  all 

        yum repolist all

   最後安裝測試 yum install 軟體包名