天天看點

yum伺服器配置及用戶端配置

在講述YUM前,先來了解下RPM是什麼?RPM是RedHat Package Manager的縮寫。顧名思義,當初這個軟體管理的程式是由Red Hat發展出來的,當然也有很多其它相類似的軟體管理程式。不過由于RPM使用上很友善,是以就成為了目前最熱門的軟體管理程式。

RPM是以一種資料庫記錄的方式來将所需要的軟體安裝到Linux系統的一套管理程式。其最大的特點就是将要安裝的軟體先編譯過(如果需要的話)并且打包好,通過包裝好的軟體裡頭預設的資料庫記錄,記錄這個軟體要安裝的時候必須要的依賴的其它軟體,當安裝在Linux系統時,RPM會先根據軟體裡紀錄的資料查詢Linux系統中依賴的其它軟體是否滿足,如果滿足則安裝,如不滿足則不安裝。

RPM包安裝程式最大的問題在于,由于RPM程式是已經打包好的資料,也就是說,裡面的資料已經都編譯完成,所有安裝時一定需要當初安裝時的主機環境才能安裝。當初建立這個軟體的安裝環境必須也要在目前主機上出現。如果有過RPM安裝經驗,碰到這樣的問題時的确很頭疼。而YUM可以很好的解決這個問題。

YUM是Yellow dog Updater, Modified的縮寫,是由Duke University所發起的計劃,目的就是為了解決RPM的依賴關系的問題,友善使用者進行軟體的安裝、更新等等工作。在此在特别說明的是,YUM隻是為了解決RPM的依賴關系的問題,而不是一種其它的軟體安裝模式。當然可以實作這樣功能的除了YUM外,還有APT (Advanced Package Tool,是由debian所發展的一個軟體管理工具)。

其實YUM的工作原理并不複雜,每一個 RPM軟體的頭(header)裡面都會紀錄該軟體的依賴關系,那麼如果可以将該頭的内容紀錄下來并且進行分析,可以知道每個軟體在安裝之前需要額外安裝哪些基礎軟體。也就是說,在伺服器上面先以分析工具将所有的RPM檔案進行分析,然後将該分析紀錄下來,隻要在進行安裝或更新時先查詢該紀錄的檔案,就可以知道所有相關聯的軟體。是以YUM的基本工作流程如下:

伺服器端:在伺服器上面存放了所有的RPM軟體包,然後以相關的功能去分析每個RPM檔案的依賴性關系,将這些資料記錄成檔案存放在伺服器的某特定目錄内。

用戶端:如果需要安裝某個軟體時,先下載下傳伺服器上面記錄的依賴性關系檔案(可通過WWW或FTP方式),通過對伺服器端下載下傳的紀錄資料進行分析,然後取得所有相關的軟體,一次全部下載下傳下來進行安裝。

在RHEL 5安裝好後,在GNOME中打開“ApplicationsàAdd/Remove Software”時,如下圖,怎麼回事無法使用嗎?不是的,因為隻有正常的配置的YUM用戶端後才可以在這裡安裝軟體。

下面将分别講述如果配置YUM服務端及用戶端。

一、配置YUM伺服器。

1.安裝vsftpd服務,并配置為自動啟動(配置為自動啟動時,除使用下圖中方法外還可直接使用chkconfig vsftpd on)。

2.将RHEL 5CD光牒中的Server、VT、Cluster、ClusterStorage四個目錄複制到/var/ftp/pub下(如不使用虛拟化及群集後三個目錄可不複制)。

3.确認系統中安裝yum(在RHEL 5是已預設安裝)、createrepo(用于生成rpm依賴關系及組資訊)包。

二、建立分組檔案

在RHEL 5中每個目錄下的repodata目錄下都有一個repomd.xml,該檔案中就記錄了rpm包的依賴關系,還有一個comps-rhel5-*.xml檔案,這個檔案主要記錄分組情況,建立yum倉庫時,需要先重建該檔案。需要重建的目錄有:

重建指令如下:

①:用于重建的指令,這裡一定要寫絕對路徑

②:這是該指令的一個Bug

③:這時需要把這個目錄手動删除

④:重新運作該指令

三、配置YUM用戶端。

1.将yum用戶端定義庫檔案(/etc/yum.repos.d/rhel-debuginfo.repo)複制一份(名稱任意,但必須以.repo結尾)修改其bashurl及名稱即可。

2.清除yum緩存

四、YUM用戶端常用指令。

yum install [-y] package

通過yum伺服器安裝指定包

●-y:不提示使用者确認直接安裝

yum localinstall rpmfile

install與localinstall的差別:install直接通過yum伺服器端安裝指定包及所有依賴關系,而localinstall是本地已有rpm檔案,隻要到yum伺服器上安裝依賴關系。

yum grouplist

顯示所有yum伺服器定義的組

yum groupinstall packagegroup

一次性安裝yum伺服器上定義的一組包

yum remove [-y] package

通過yum伺服器安裝指定包

●-y:不提示使用者确認直接删除

yum groupremove packagegroup

一次性删除yum伺服器上定義的一組包

yum list

列出yum伺服器所有可用的包

yum info package

顯示指定包資訊

yum groupinfo grouppackgroup

顯示指定分組資訊

yum clean all

清除yum緩存