歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux軟件 >> Linux軟件包管理神器YUM簡介

Linux軟件包管理神器YUM簡介

日期:2017/3/3 16:03:12   编辑:Linux軟件

一、什麼是YUM

YUM是“Yellow dogUpdater, Modified”的縮寫,可執行程序名為yum。YUM是一個在Fedora和RedHat以及SUSE、CentOS中的Shell前端軟件包管理器。在紅帽企業版Linux 5中引入YUM的重要原因之一,便是YUM能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝,便於管理大量系統的更新問題。

二、為什麼要使用YUM

使用yum來安裝軟件包,要比使用rpm命令安裝軟件包方便的太多太多了。最主要的一點,我想還是因為yum可以自動的解決依賴關系吧。使用過linux安裝二進制軟件包的人應該都遇到過rpm包之間的依賴關系,特別是循環依賴,真的是很讓人頭疼,有時候為了安裝一個軟件包,不得不浪費一整天的時間。yum自動解決依賴關系,為我們縮短了安裝軟件包所使用的時間,提高了工作效率,像這樣一個堪稱尤物的家伙,怎麼能讓人不愛呢。yum也可以使用一條命令來直接升級系統上所有要升級的軟件包,你說,不愛她你愛誰呢。

三、怎樣使用YUM

yum的使用其實很簡單,我們只需要把yum軟件包安裝好,然後改下yum源配置文件就可以了,就可以從別人的yum源上自動下載軟件包,然後自動安裝。不過本文章的意義不是在於教你改配置文件,然後安裝yum包,然後再利用yum命令來安裝軟件包,而是要自己動手,自己做YUM源,自己使用自己的YUM源,充分的理解YUM的工作原理。

四、YUM的組成及工作原理

yum由兩部分組成,一部分是yum源(或稱之為yum倉庫|其實就是軟件包倉庫),另一部分就是yum的客戶端,說白了就是安裝好yum軟件,可以使用yum命令的客戶機。

當我們使用yum命令來安裝一個軟件包的時候,yum會根據yum的配置文件(/etc/yum.repos.d/*.repo)來查找yum源,然後下載yum源上的數據文件緩存到本地,以便再次查詢的時候,提高查詢速度。只有第一次才會下載緩存文件。完成之後,如果要安裝的軟件包在軟件倉庫裡,那麼就開始根據服務器上依賴關系文件裡面的定義,看是不是有依賴其它軟件包,如果有,會提示用戶有依賴關系,是不是要安裝,用戶回答y的時候,開始自動解決依賴關系直到完成軟件包的安裝。如果沒依賴關系,也會提示用戶,找到了要安裝的軟件包,是不是現在安裝,如果用戶輸入y,則開始安裝,如果直接回車,默認是不安裝的。一個yum命令,會開啟一個yum事務,所以,如果你正在執行yum命令,然後別人登錄到了你在的服務器,這時候他是不能執行yum命令的,這時候的yum進程是被鎖定的,只有當你的yum命令執行完成後,事務結束,別人才可以使用yum命令。

五、YUM的配置

5.1 配置客戶端

客戶端的配置為兩步,一是安裝軟件包,二是改配置文件

我的機器上安裝了以上軟件包,直接使用rpm -ivh就可以安裝了,安裝完成後,這一步就算是完成了

5.1.2更改配置文件

yum的配置文件有兩部分:主配置文件和yum源配置文件

主配置文件

[root@Honway ~]# cat /etc/yum.conf

[main]

cachedir=/var/cache/yum 緩存目錄

keepcache=0 是否保存緩存

debuglevel=2 調試級別

logfile=/var/log/yum.log 日志文件

distroverpkg=redhat-release

tolerant=1 允許出錯(如果有多個軟件包,當有某個包已經安裝的時候,是否繼續,1表示允許)

exactarch=1

obsoletes=1

gpgcheck=1 安裝的時候,是不是檢測檢測軟件包的簽名信息

plugins=1 啟用插件功能

再來看一下yum怎麼指定yum源的,文件位於/etc/yum.repos.d/目錄下,在這個目錄中所有以.repo結尾的文件,都會被yum認為是yum的yum源配置文件。其寫法如下

[id]

name=custmed yum repository

baseurl=ftp://192.168.0.254/pub/Server

gpgcheck=0[0禁用|1啟用]

enabled=0[0禁用|1啟用] (默認開啟,該項可不寫)

其中id就是一個名字,可以隨便寫。

name是對id的一個描述信息。

baseurl這裡有三種寫法,也代表了yum支持的三種協議,遠程協議有ftp://和http://,本地yum源的file:/// 是三條斜線

gpgcheck是不是檢測簽名的

enabled是不是啟用這一項,一個yum.repo配置文件中,可以寫多項,每一項的都是以[id]開始的,每一個[id]都可以認為是一個獨立的段

5.2 配置YUM源(YUM倉庫|YUM服務器端)

要配置YUM源,我們要使用一個命令,叫做createrepo,這個軟件包需要安裝,在系統光盤Server目錄中(RHEL5)直接使用rpm -ivh命令安裝即可。

安裝完成後,就可以開始創建yum源了。為了演示效果,我這裡拷貝一下光盤VT目錄,對VT進行創建YUM源。

repodate目錄: yum源的元數據文件目錄

primary.xml.gz 此yum源中定義所有rpm文件及其彼此間的依賴關系,還包含了每一個rpm包中的文件名

filelists.xml.gz: 此yum源中每一個包中文件的文件相關信息;

other.xml.gz: 額外信息,比如changelog等

repomd.xml 校驗碼和時間戳

comps-rhel5-server-core.xml軟件包的分組信息;(除非有分組,否則不會出現,有時候分組需要自己手動創建)

這樣,一個YUM源就算是創建完成了,是不是很EASY啊,創建完成後,我們還可以接著對其它的軟件包進行創建,可以對Server目錄或者其它目錄進行創建,也可以對我們自己制作的RPM包進行創建,把要創建YUM源的所有軟件包放到一個目錄裡面,然後使用createrepo後面跟軟件包所在的目錄就可以了。

到這裡,我們就算是創建完YUM源了我們改一下yum客戶端配置文件,就可以直接使用了,因為客戶端和服務端是在同一台機器上,所以我們可以不用FTP或HTTP服務,直接使用file:///。

六、YUM的簡單使用

yum [options] [command] [package ...]

command is one of:

* install package1 [package2] [...]

* update [package1] [package2] [...]

* check-update

* upgrade [package1] [package2] [...]

* remove | erase package1 [package2] [...]

* list [...]

all| installed | available | updates

* info [...]

* provides | whatprovides feature1 [feature2] [...] 查詢指定的文件是由哪個軟件包提供的

* clean [ packages | headers | metadata | dbcache | all ] 清除緩存

* makecache

* groupinstall group1 [group2] [...] 安裝指定的軟件包組

 

* groupupdate group1 [group2] [...]

* grouplist [hidden] [groupwildcard] [...] 顯示軟件包組

* groupremove group1 [group2] [...] 刪除指定的包組

* groupinfo group1 [...] 查詢指定包組的信息

* search string1 [string2] [...]

* shell [filename]

* resolvedep dep1 [dep2] [...]

* localinstall rpmfile1 [rpmfile2] [...] 安裝下載好的rpm文件

* localupdate rpmfile1 [rpmfile2] [...] 升級下載到本地的rpm包

* reinstall package1 [package2] [...] 重裝軟件包,不刪除原來的.

* downgrade package1 [package2] [...] 降級軟件包

* deplist package1 [package2] [...]

* repolist [all|enabled|disabled] 顯示yum源

* help [command] 顯示指定軟件包的help信息

以上是從man yum裡面弄出來的,只對一些常見的進行了解釋,其它的,自己翻譯自己理解吧,呵呵。

下面貼下自己的yum源配置文件。

[Server]

name=Server

baseurl=http://192.168.0.254/pub/Server

gpgcheck=0

enabled=1

[VT]

name=VT

baseurl=http://192.168.0.254/pub/VT

gpgcheck=0

enabled=1

[Cluster]

name=Cluster

baseurl=http://192.168.0.254/pub/Cluster

gpgeheck=0

[ClusterStorage]

name=ClusterStorage

baseurl=ftp://192.168.0.254/pub/ClusterStorage

gpgcheck=0

enabled=1

本文出自 “吖吖個呸” 博客,請務必保留此出處http://gm100861.blog.51cto.com/1930562/788535

Copyright © Linux教程網 All Rights Reserved