標籤:yum 伺服器 rpm linux 依賴性
如何在沒有外網的情況下,通過Centos系統光碟片建立yum源,結果rpm包依賴性問題
相信作為Linux系統管理員在安裝rpm包的過程中或多或少都會遇到軟體依賴性。通常我們的解決方案:
1.通過yum工具串連外網上的yum伺服器來安裝,自動幫忙解決軟甲依賴性。
該方法能夠快速解決軟體依賴性問題,但是解決的前提是生產環境中有外光。如果我們的生產環境不允許串連或者不具備外網條件,基本上就沒有辦法解決了。
2.手動安裝依賴性軟體。這種方法較為原始的安裝方法,只適合對軟體依賴性較少的情況,如果所安裝的軟體所依賴的軟體較多,等你把軟體安裝好了,估計黃花菜都涼了
3.實在沒有別的辦法,只能來簡單粗暴的方式,重裝系統,把所需要的軟體在定製系統時全部安裝。如果你真的用來這種方法,我只能在心裡默默的鄙視你了。
如何直接上門遇到的問題呢?很簡單,只需要通過更改yum相關的配置即可。工作將系統硬碟作為yum源即可。
Yum工作原理
yum 運行原理
yum的工作需要兩部分來合作,一部分是yum伺服器,還有就是client的yum工具。下面分別介紹兩部分工作原理。
所有要發行的rpm包都放在yum伺服器上以提供別人來下載,rpm包根據kernel的版本號碼,cpu的版本號碼分別編譯發布。yum伺服器只要提供簡單的下載就可以了,ftp或者httpd的形式都可以。yum伺服器有一個最重要的環節就是整理出每個rpm包的基本資料,包括rpm包對應的版本號碼,conf檔案,binary資訊,以及很關鍵的依賴資訊。在yum伺服器上提供了createrepo工具,用於把rpm包的基本概要資訊做成一張"清單",這張"清單""就是描述每個rpm包的spec檔案中資訊。
client每次調用yum install或者search的時候,都會去解析/etc/yum.repos.dm目錄下面所有以.repo結尾的設定檔,這些設定檔指定了yum伺服器的地址。yum會定期去"更新"yum伺服器上的rpm包"清單",然後把"清單"下載儲存到yum自己的cache裡面,根據/etc/yum.conf裡配置(預設是在/var/cache/yum下面),每次調用yum裝包的時候都會去這個cache目錄下去找"清單",根據"清單"裡的rpm包描述從而來確定安裝包的名字,版本號碼,所需要的依賴包等,然後再去yum伺服器下載rpm包安裝。(前提是不存在rpm包的cache)
註:有興趣的朋友可以更深入的瞭解一下搭建yum伺服器
通過yum工作原理可以知道,用戶端通過制定的yum伺服器來訪問和下載依賴性軟體。那麼我們能不能指定本地的yum源為本地地址,通過調用本地的資源來解決軟體依賴性呢?答案是可以。
解決思路:
Centos系統硬碟裡面內建所有預先安裝軟體,讓yum調用系統硬碟中的軟體包資源,來替代遠端伺服器的功能。
Yum通過調用yum設定檔中的伺服器位址下載人rpm依賴性包,我們可以將掛載系統硬碟,通過yum設定檔將伺服器位址更改指向掛載的系統硬碟目錄。當然如果有條件的話可以自己搭建一個內部yum伺服器,可以解決多台伺服器的rpm軟體依賴性問題,可以節省很多時間。
配置方法:
1. 將/etc/yum.repos.d 目錄下問的檔案備份,依然移除除了Centos-Media.repo的其他檔案。Yum的伺服器配置相當文檔放置在如中。雖然可以通過其它文檔,讓yum訪問本地目錄,但是通過實際的操作發現。儘管做了配置,但是更新時依舊會報錯,所以建議大家最好現在備份,然後移除不需要配置的文檔來操作。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/5D/D8/wKiom1UlF63BGoj2AADyx6pCwXI529.jpg" title="1.PNG" alt="wKiom1UlF63BGoj2AADyx6pCwXI529.jpg" />
2.配置Centos-Media.repo。預設的配置文檔如下,我們需要參數“enable=0”更改問“enable=1”,啟用該文檔。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/5D/D8/wKiom1UlF7mTopkeAAIkGmKR18I206.jpg" title="2.PNG" alt="wKiom1UlF7mTopkeAAIkGmKR18I206.jpg" />
3.掛載系統硬碟到配置的目錄下,我們知道的配置文檔的目錄有/media/Centos,我們可以將系統光碟片掛載到該目錄下即可。具體怎麼掛載,這裡就不做詳細的介紹。
4.經過以上步驟的配置,即可安裝軟體,但是需要注意的是,我們需要通過安裝光碟片中的軟體來操作,不然系統提示找不到。畢竟我們只是制定了相關的資源路徑,並不是搭建一個yum伺服器。
本文出自 “考拉先生” 部落格,請務必保留此出處http://koala003.blog.51cto.com/9996246/1630149
如何在沒有外網的情況下,通過Centos系統光碟片建立yum源,結果rpm包依賴性問題