1. 程式人生 > >rhel 6.5 yum源的配置

rhel 6.5 yum源的配置

    yum 是 yellowdog updater modified 簡稱,說白了就是升級版的rpm, yum的出現主要是由於rpm的那煩人的依賴關係所致, yum能夠自動解決軟體包之間的各種依賴關係(線性依賴, 環形依賴)

    yum大致的原理: 當用戶使用yum對軟體包進行管理時,yum會依據它的配置檔案到指定的yum源去下載所有在yum源中與軟體包相關的元資料資訊並將這些資訊快取到本地,然後依據這些資訊對軟體包的依賴性進行分析並嘗試將其解決,接著就是到yum源中下載相關的軟體包到本地並開始安裝

注:

  • yum的配置檔案/etc/yum.conf/etc/yum.repos.d/*.repo
  • yum的本地快取位置是在/etc/yum.conf當中定義的,預設位置為/var/cache/yum目錄
  • 元資料資訊的儲存位置是在yum源中的repodata目錄當中
  • 儲存yum源位置一般是檔案共享伺服器(nfs, ftp, http),當然你的安裝光碟映象也能作為yum源

    在這裡主要介紹本地光碟yum源網路http的yum源搭建

    由於這裡使用的是rhel 6.5 (Redhat Enterprise Linux 6.5),而紅帽認為yum源是收費性的服務,所以我們必須刪除原來安裝系統時一併安裝的yum才行,否則將出現如下資訊

     

    檢視安裝了哪些yum軟體包

    # rpm -qa | grep "yum"

   

    刪除這一個yum包即可

    # rpm -e yum

   

    由於yum被其它的軟體包依賴,所以在刪除時要使用rpm命令的 --nodeps 選項, 這裡順便刪除subscription-manager這個包,因為我們不購買紅帽的服務 

     

  

   接下來我們在主機能夠聯網並且已經安裝了wget工具的情況下,下載CentOS版的yum軟體包

   而需要下載的軟體包如下:

  • python-urlgrabber-3.9.1-11.el6.noarch.rpm
  • yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
  • yum-3.2.29-73.el6.centos.noarch.rpm

   通過wget獲取以下包

  • # wget http://centos.ustc.edu.cn/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
  • # wget http://centos.ustc.edu.cn/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
  • # wget http://centos.ustc.edu.cn/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm

   


   安裝下載的軟體包

   # rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

   安裝時會報錯,原因是因為系統在安裝時已經安裝過python-urlgrabber 2.6的版,所以我們得刪除這個包才行

  

   然後繼續安裝

  

   接著安裝yum的主包

   # rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpm

   安裝時又報錯,因為yum的主包依賴於yum-plugin-fastestmirror這個包

  

   那麼我就先安裝yum-plugin-fastestmirror這個包

  

   安裝時又報錯,此時你應該知道為什麼會出現yum這種工具了吧大笑

   因為這是環形依賴(A 依賴 B, B 依賴 A),所以解決的辦法就是同時安裝這兩個包

  

   此時我們的yum已經安裝完成,剩下的就是怎樣去配置yum源了

####################################################################################################################################

      其實此處有個更簡單的辦法就是直接把subscription-manager刪除即可, 這個方法簡單粗暴, 我也是經過多次嘗試才知道的, 

    前面寫的都白費了可憐 # rpm -e subscription-manager

################################################################################ 

配置本地光碟yum源

   由於我們是在虛擬機器中作測試,所以得用虛擬機器模擬將光碟插入虛擬機器的光碟機中

   虛擬機器(virtual machine) --> 設定(settings) --> CD/DVD(IDE)

  

  

   然後再把光碟掛載到/media目錄當中

   # mount -r /dev/sr0 /media

  

   接著就是要編輯yum的配置檔案

  

   進入vi後,進行如下編輯

  

[Media] 這是yum源的容器的名稱,中括號內可以隨便寫任意字串
name=Media - /media 這是對容器的說明,也是可以隨便寫
baseurl=file:///media 容器地址,本地光碟採用file://這種協議
enabled=1 是否啟用這個yum源
gpgcheck=1 是否進行驗證來源合法性
gpgkey=file:///media/RPM-GPG-KEY-redhat-release 驗證公鑰的位置
注: 如果驗證不成功就會報錯,如下

  

   做好了這些準備工作後,我們來嘗試使用yum安裝tree這個軟體包

  

   這樣我們本地光碟yum源就配置完成了

網路http的yum源

   配置網路http的yum源比較簡單,我們先到CentOS官方的yum源映象網址選擇合適的yum源映象站點

  CentOS官方的yum源映象網址https://www.centos.org/download/mirrors/

  

   這裡我們選擇中國科技大學的yum源映象站點,需要做的事情就是使用wget下載下面這個檔案

   # cd /etc/yum.repos.d/

  # wget -O CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=2

  

   貌似遇到DNS不能夠解析"lug.ustc.edu.cn"的問題,對於現在的我還沒有能力解決這個問題,我也搜尋過很多資訊,它們一般會告訴你將/etc/resolv.conf檔案當中的DNS修改nameserver 8.8.8.8, 我試了還是不行,所以現在只能在windows的瀏覽器位址列中輸入https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=2

,然後用文字編輯器開啟下載好的檔案

   

 然後再將其內容貼上到虛擬機器中的CentOS-Base.repo當中去

   

   

    儲存並退出後,測試一下這個yum源是否能用, 先清空yum的快取

   # yum clean all

    然後測試yum

   # yum -y install vim

    再次報錯大笑

   

    原因在於剛才的CentOS-Base.repo這個檔案當中的 $releasever 這個變數貌似展開得到不對所致,具體原因我現在還沒找到,解決的辦法就是開啟剛才的CentOS-Base.repo這檔案將所有的$releasever替換為你的linux的版本,如果是

rehel 6.x 就替換為 6 即可

   # vi CentOS-Base.repo

   

    儲存並退出, 然後將yum源中的元資料資訊快取到本地的/var/cache/yum目錄當中去

   # yum makecache

   

    快取完元資料資訊後以後,測試yum源是否可以使用

   # yum -y install vim

   

    到此為此,我們的http網路yum源已經配置完成