Linux神奇的yum

    到底什麼是yum?yum的功能與作用?爲什麼我們在有了rpm之後,還會出現yum這個軟件安裝工具呢?不知各位有沒有思考過,哪怕僅僅幾秒。

    一:yum簡介:

    yum,是Yellow dog Updater,Modified的簡稱,起初是由yello dog這一發行版的開發者Terra Soft研發,用python寫成,那時還叫做yup(yellow dog updater),後經杜克大學的Linux@Duke開發團隊進行改進,遂有此名。

    yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關信息,檢查依賴性並自動提示用戶解決。yum的關鍵之處是有着可靠的repository,顧名思義,這是軟件的倉庫,它可以是http或ftp站點,也可以是本地軟件池,但必須包含rpm的header,header包括了rpm包的各種信息,包括描述,功能,提供的文件,依賴性等,正是收集了這些header並加以分析,才能自動化的完成餘下的任務。

    二:yum的配置文件

      yum的一切配置信息都存在一個叫yum.conf的配置文件中,通常位於/etc目錄下,這是整個yum系統的重中之重。那我先cat一下這個文件。

wKioL1e8A7_DtlgOAABVRL9ami0066.png-wh_50

wKioL1e8A96zw4__AAALuGFCg7g393.png-wh_50

      第一部分(這是yum的全局性設置,默認一般不必改動)     

      [main]

      cachedir:yum緩存的目錄,yum在此存儲下載的rpm包和數據庫,一般是/var/cache/yum

      debuglevel:除錯級別,0-10,默認是2

      logfile:yum的日誌文件,默認是/var/log/yum.log

      pkgpolicy:包的策略。一共有倆個選項,newest和last這個作用是如果你設置了多個repository,而同一軟件在不同的repository中同時存在,yum應該安裝哪一個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將服務器id以字母表排序,並選擇最後的那個服務器上的軟件安裝。一般都是選newest。

      distroverpkg:指定一個軟件包,yum會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm包。

      exactarch:網絡連接發生錯誤後的重試次數,如果設爲0,則會無限重試。

      retries:1和0倆個選項,表示yum是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝1,2,3三個包,但其中3此前已經安裝了,如果你設爲1,則yum不會出現錯誤信息。默認是0。

      除了上述之外,還有一些可以添加的選項,如:

      exclude=,排除某些軟件在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對於安裝了諸如美化包,中文補丁的朋友特別有用。

      gpgcheck=,有1和0倆個選擇,分別代表是否進行gpg校驗,如果沒有校驗,默認是檢查的,即1。

      第二部分:

      配置repository服務器,這是最令人激動的,有了好的repository,就如家門口有個免費的超市,想要什麼跑跑腿就行。

      [serverid]

      name=Some name for this server

      baseurl=url://path/to/repository/

      其中,serverid是用於區別各個不同的repository,必須有一個獨一無二的名稱。而且必須在[]

      name,是對repository的描述,支持像$releasever $basearch這樣的變量;

      baseurl是服務器設置中最重要的部分,只有設置正確,才能從上面獲取軟件。它的格式是:

      baseurl=url://server1/path/to/repositroy/

      baseurl=ur2://server1/path/to/repositroy/  

      baseurl=ur3://server1/path/to/repositroy/

      其中url支持的協議有http:// ftp:// file://三種。bashurl後可以跟多個url,其中url指向的目錄必須是repository header目錄的上一級。

      url之後可以加上多個選項,如gpgcheck,exclude,failovermethod等

      如

      [updates-released]

      name=Fedora Core $releasever - $basharch - Released Updates

      baseurl=http://downloadatrpms.net/mirrors/fedoracore/updates/$releasever/$bashurl

              http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$bashurl

              http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basharch

              gpgcheck=1

              exclude=gaim

              failovermethod=priority

              其中gpgcheck,exclude的含義和[main]部分相同,但只對此服務器起作用,

              failovermethode有倆個選項roundrobin和priority,意思分別是由多個url可選擇時,               yum選擇的次序,roundrobin是隨機選擇,如果連接失敗則使用下一個,依次循環,                   priority則根據url的次序從第一個開始。如果不指明,默認是roundrobin。

     幾個變量

     $releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。

     $basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。

     對yum.conf設定完成,我們就可以好好體驗yum帶來的方便了,下一節再見。我的願望是,世界上再無心機婊。















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章