天天看點

yum倉庫的建立和yum用戶端的配置及yum指令詳解

     yum是通過分析RPM的标題資料,根據各軟體的相關性制作出屬性依賴時的解決方案,然後自動處理軟體之間的依賴屬性問題,以解決軟體包的安裝,删除和更新的問題,實作自動安裝。

    那yum是怎麼工作的呢?首先,我們先了解一下幾個概念。軟體發行者要釋出的軟體通常會放在一個伺服器上,稱為yum伺服器。然後他們分析這些軟體的依賴屬性問題,将這些資訊記錄下來,再将這些資訊分析記錄成軟體相關性的清單清單,這些清單資料和軟體所在的位置,我們稱為yum倉庫。

    yum的工作流程:當用戶端有更新,安裝,解除安裝的需求時,yum會向倉庫要求清單的更新,等到清單更新到本機的/var/cache/yum中,操作的時候就會用這個清單與本機RPM資料庫進行比較,這樣就知道該下載下傳或解除安裝什麼軟體了。接下來yum會到yum伺服器的yum倉庫中下載下傳所需要的軟體,然後通過RPM機制進行安裝或解除安裝。

   yum伺服器支援的服務有:

   1,ftp

   2,http

   3,本地的檔案

   首先,我們來說一下yum伺服器的建立,我們以建立本地yum倉庫為例:

   1,我們建立一個目錄/var/yum,這個目錄中存放我們要釋出的RPM軟體包

   2,建立yum倉庫需要createrepo指令,如果系統沒有這個指令,則需要挂載系統安裝CD光牒,打開Server目錄中,安裝createrepo這個軟體包即可。

   指令為:rpm -i createrepo-0.4.11-3.el5.noarch.rpm(不同系統版本不同)

   3,createrepo /var/yum 這個指令就把yum目錄建立為了yum倉庫,指令執行成功後或在yum目錄中生成一個repodata目錄,裡面會有primary.xml.gz,filelists.xml.gz,other.xml.gz,repomd.xml檔案(預設不會有comps-rhel5-server-core.xml這個檔案,即yum不支援組包的相關功能)

    primary.xml.gz檔案:主要記錄yum倉庫中所有軟體包的包名和互相之間的依賴關系,還包含了每一個rpm包的安裝要生成什麼檔案。

    filelists.xml.gz檔案:存放yum倉庫中每一個RPM包中的檔案的相關資訊

    other.xml.gz檔案:存放額外資訊,如使用changelog選項顯示的資訊等。

    repomd.xml檔案:存放上面三個檔案的校驗碼和時間戳。

    這四個檔案,會在第一次使用yum指令的時候下載下傳到yum設定的緩存中,如果yum倉庫中有軟體更新,則primary.xml.gz,filelists.xml.gz,other.xml.gz這三個檔案内容就會改變,檢測到改變之後,就會從yum倉庫下載下傳新的檔案。

    我們的yum倉庫就這樣的建立了,很簡單吧!

    yum伺服器建立之後,我們系統上要有yum用戶端,才能使用yum倉庫,yum指令才能正常的工作。

    yum用戶端的配置檔案有兩部分:

    1,/etc/yum.conf  用戶端的主配置檔案

    [main]  表示這是全局生效的檔案

    cachedir=/var/cache/yum  定義的緩存路徑,用于下載下傳要安裝的軟體包等

    keepcache=0   安裝之後,緩存中的軟體包是否保留(0不保留,1保留)

    debuglevel=2  調試級别

    logfile=/var/log/yum.log  yum安裝之後相應的安裝日志儲存路徑

    distroverpkg=redhat-release  說明軟體包的格式

    tolerant=1   當同時安裝多個軟體包時,有的已經安裝過了,就會出錯,但是設為把這個值設為1之後,就表示會忽略已安裝的繼續安裝

    exactarch=1  是否精确比對硬體平台版本,0表示禁用,1表示啟用

    obsoletes=1  是否檢查已廢棄的包,0表示禁用,1表示啟用

    gpgcheck=1  安裝之前是否堅持軟體包的簽名,0表示禁用,1表示啟用

    plugins=1   是否啟用插件功能,0表示禁用,1表示啟用

    metadata_expire=1h  源資料的過去時間

    2,/etc/yum.repos.d/*.repo  每一個yum倉庫可以使用對應的一個這樣字尾的檔案

     [heartbeat]         對應yum倉庫的識别符号,[]一定不能省,不能使用main,其他的任意,多個名字的話不能重複

     name=heartbeat      隻是說明這個yum容器的意義,不大重要

     baseurl=file:///var/yum   指定yum源的位置,這是一個固定的。(如果是本地的yum倉庫,寫為:baseurl=ftp://172.16.0.1/pub/Server)

     gpgcheck=0      是否要驗證數字證書

     enabled=1       yum倉庫是否啟用,0表示禁用,1表示啟用

     配置之後,yum用戶端就完成了!現在,我們的yum倉庫和yum用戶端都已經ok,現在就可以使用yum指令了。

    yum指令:

    yum list all 顯示系統上所有的軟體包

    yum list installed 顯示系統上已經安裝的軟體包

    yum list available 顯示yum倉庫中尚未使用的軟體包

    yum list updates 顯示系統上能更新的軟體包

    yum install package_name... 安裝RPM包 指定軟體包的名字就可以了,下面相同

    yum remove package_name... 解除安裝RPM包

    yum update package_name... 更新RPM包

    yum info package_name... 顯示軟體包的摘要資訊

    yum provides filename    顯示這個檔案由哪個RPM包安裝

    yum downgrade package_name... 降級軟體包

    yum reinstall package_name... 重裝RPM包

    yum whatprovides libmysqlclient.so.16 查詢哪個包提供libmysqlclient.so.16檔案

    yum repolist all 顯示所有的yum倉庫

    yum repolist enabled 顯示啟用的yum倉庫

    yum repolist disabled 顯示未啟用的yum倉庫

    yum clean all 清空本地yum緩存

    yum grouplist 顯示已安裝的軟體包組的資訊

    yum groupinstall "groupname" 安裝RPM包組

    yum groupremove "groupname" 解除安裝RPM包組

    yum groupinfo "groupname" 檢視包組的相關資訊

    yum localinstall localfile... 安裝本地的一個軟體包,如果這個包需要依賴其他RPM包的話,會從yum源直接下載下傳并安裝(即自動解決依賴關系)

    yum localupdate localfile...用本地的軟體包進行更新

    yum search keyword 查找yum倉庫符合關鍵字的RPM包的相關屬性資訊

本文轉自 leejia1989 51CTO部落格,原文連結:http://blog.51cto.com/leejia/788137,如需轉載請自行聯系原作者

上一篇: sed指令詳解
下一篇: find指令詳解