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 5光碟中的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快取