1. 程式人生 > >如何在沒有外網的情況下,通過Centos系統光碟建立yum源,解決rpm包依賴性問題

如何在沒有外網的情況下,通過Centos系統光碟建立yum源,解決rpm包依賴性問題

相信作為Linux系統管理員在安裝rpm包的過程中或多或少都會遇到軟體依賴性。通常我們的解決方法:

1.通過yum工具連線外網上的yum伺服器來安裝,自動幫忙解決軟甲依賴性。

該方法能夠快速解決軟體依賴性問題,但是解決的前提是生產環境中有外光。如果我們的生產環境不允許連線或者不具備外網條件,基本上就沒有辦法解決了。

2.手動安裝依賴性軟體。這種方法較為原始的安裝方法,只適合對軟體依賴性較少的情況,如果所安裝的軟體所依賴的軟體較多,等你把軟體安裝好了,估計黃花菜都涼了

3.實在沒有別的辦法,只能來簡單粗暴的方式,重灌系統,把所需要的軟體在定製系統時全部安裝。如果你真的用來這種方法,我只能在心裡默默的鄙視你了。

如何直接上門遇到的問題呢?很簡單,只需要通過更改yum相關的配置即可。工作將系統盤作為yum源即可。

Yum工作原理

yum 執行原理

yum的工作需要兩部分來合作,一部分是yum伺服器,還有就是clientyum工具。下面分別介紹兩部分工作原理。

  • yum伺服器

所有要發行的rpm包都放在yum伺服器上以提供別人來下載,rpm包根據kernel的版本號,cpu的版本號分別編譯釋出。yum伺服器只要提供簡單的下載就可以了,ftp或者httpd的形式都可以。yum伺服器有一個最重要的環節就是整理出每個rpm包的基本資訊,包括rpm包對應的版本號,conf檔案,binary資訊,以及很關鍵的依賴資訊。在

yum伺服器上提供了createrepo工具,用於把rpm包的基本概要資訊做成一張"清單",這張"清單""就是描述每個rpm包的spec檔案中資訊。

  • yum client端

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訪問本地目錄,但是通過實際的操作發現。儘管做了配置,但是更新時依舊會報錯,所以建議大家最好現在備份,然後移除不需要配置的文件來操作。

2.配置Centos-Media.repo。預設的配置文件如下,我們需要引數“enable=0”更改問“enable=1”,啟用該文件。

 

3. 掛載系統盤到配置的目錄下,我們知道上圖的配置文件的目錄有/media/Centos,我們可以將系統光碟掛載到該目錄下即可。具體怎麼掛載,這裡就不做詳細的介紹。

4. 經過以上步驟的配置,即可安裝軟體,但是需要注意的是,我們需要通過安裝光碟中的軟體來操作,不然系統提示找不到。畢竟我們只是制定了相關的資源路徑,並不是搭建一個yum伺服器。