歡迎您光臨本站 註冊首頁

Yum可以讓你隨時擁有最新的Fedora

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  在Red Hat或者其它基於RPM的操作系統中安裝或者更新軟體時,我們經常會被一些莫名其妙的錯誤提示所困擾.即便是使用Red Hat提供的基於GUI的管理工具,這個問題也沒有徹底解決.事實上,絕大部分的問題,都出在了各個軟體包的關聯性問題上.很顯然,這是RPM軟體包管理工具存在著一些不足.
  
  Yum是一個針對RPM操作系統的非常方便的自動升級和軟體包管理工具.Yum會自動計算出程序之間的相互關聯性,並且計算出完成軟體包的安裝需要哪些步驟.對於那些管理著大量機器的系統管理員來說,這意味著不需要通過RPM手工來升級每一台機器.在安裝軟體時,也不會再被那些關聯性問題所困擾.
  
  在Red Hat中,有一個專門用於軟體包升級的工具—Up2Date.在預設情況下,它也是Fedora Core1中的RPM軟體包管理工具.這是一個很直觀的,基於GUI的軟體包管理工具.遺憾的是,它在使用過程中經常會出錯,並且也不夠靈活.
  
  Yum可以代替Up2Date,或者作為其一個補充.實踐發現,Yum不僅速度更快,更加可靠,而且還提供了很多其它工具所沒有提供的功能,比如:
  
  ◆ 多個軟體倉庫
  
  ◆ 簡單的配置文件
  
  ◆ 正確的依賴性檢查
  
  ◆ somps.xml組支持
  
  ◆ 簡單的界面
  
  如前所述,Yum不僅可以讓系統上已經安裝的軟體包處於最新狀態,也可用於直接安裝軟體包.現實中,經常會碰到的問題之一就是,無法找到足夠的光碟存儲一些需要的軟體包.而使用Yum,可以直接從網上下載安裝軟體包.
  
  預設情況下,Yum已經被安裝到了Fedora Core 1中,如果系統沒有安裝這個工具,可以直接從光碟安裝,也可以從以下位置下載Yum的RPM包,並安裝:
  
  http://mirrors.kernel.org/fedora/core/1/i386/os/Fedora/RPMS/
  
  配置Yum
  
  在使用Yum之前,我們要編輯/etc/yum.conf配置文件,更改其中指明所使用的軟體倉庫伺服器的位置.下面是預設情況下該文件的內容:
  
  [main]
  cachedir=/var/cache/yum
  debuglevel=2
  logfile=/var/log/yum.log
  pkgpolicy=newest
  distroverpkg=fedora-release
  tolerant=1
  exactarch=1
  [base]
  name=Fedora Core $releasever - $basearch - Base
  baseurl=http://fedora.redhat.com/releases/fedora-core-$releasever
  [updates-released]
  name=Fedora Core $releasever - $basearch - Released Updates
  baseurl=http://fedora.redhat.com/updates/released/fedora-core-$releasever
  #[updates-testing]
  #name=Fedora Core $releasever - $basearch - Unreleased Updates


  #baseurl=http://fedora.redhat.com/updates/testing/fedora-core-$releasever
  
  預設情況下,Yum使用的是Fedora Core1主下載伺服器.使用這個伺服器的人實在是太多,速度比較慢.如果需要的話,我們可以將Yum設置成其它的鏡像站點.請到http://fedora.redhat.com/download/mirrors.html查看可用的鏡像站點.
  
  一般來說,我們都會選擇在地理上與自己比較接近的站點,這通常有利於加快下載的速度(當然情況也並不總是如此).
  
  在本例中,我選擇mirrors.kernel.org作為升級站點.以root身份編輯/etc/yum.conf文件,將[base]和[updates-released]章節的內容改成下面的內容:
  
  [base]
  name=Fedora Core $releasever - $basearch - Base
  baseurl=http://mirrors.kernel.org/fedora/core/$releasever/$basearch/os
  [updates-released]
  name=Fedora Core $releasever - $basearch - Released Updates
  baseurl=http://mirrors.kernel.org/fedora/core/updates/$releasever/$basearch
  
  當然,根據所選擇的站點不同,上述章節的內容也不同.對於文件中的[updates-testing]部分則不用對其進行更改,一般來說,在升級和安裝軟體包時並不需要使用它.
  
  除了編輯yum.conf文件外,還需要更改/etc/sysconfig/rhn/sources文件,使用所選擇的鏡像站點來代替文件的內容:
  
  yum fedora-core-1 http://mirrors.kernel.org/fedora/core/1/i386/os
  yum updates-released http://mirrors.kernel.org/fedora/core/updates/1/i386
  
  使用Yum
  
  使用Yum要做的第一件事情是更新其RPM header(文件頭)列表.每一個RPM都有一個header,其中包含了完整的文件列表、軟體包描述、實現的功能和提供的庫、所需要的東西以及有什麼衝突.Yum正是使用這些信息來決定如何升級和安裝軟體包的.
  
  下面就來解決這個問題,輸入以下命令:
  
  yum check-update
  
  運行這個命令,Yum將從yum.conf文件中指定的軟體包伺服器上下載當前的完整header文件列表.這個過程通常需要花費一定的時間,並且會有如下的一些顯示信息:
  
  Gathering header information file(s) from server(s)
  Server: Fedora Core 1 - i386 - Base
  Server: Fedora Core 1 - i386 - Released Updates
  Finding updated packages
  Downloading needed
  headers
  getting /var/cache/yum/updates-released
  /headers/pango-0-1.2.5-4.i386.hdr
  pango-0-1.2.5-4.i386.hdr
  100% |=======| 6.5 kB  00:02
  ......
  
  當上述的步驟完成之後,說明Yum已經下載完了所有的header文件.如果想讓現在系統上安裝的所有軟體都處於最新的狀態,只需使用以下命令:


  
  yum update
  
  Yum會將現在系統上安裝的所有軟體和目前的軟體倉庫伺服器上的軟體進行比較,比較完成後,它會給出一個有關細節的信息列表讓用戶確認,列表的內容如下所示:
  
  Gathering header information file(s) from server(s)
  Server: Fedora Core 1 - i386 - Base
  Server: Fedora Core 1 - i386 - Released Updates
  Finding updated packages
  Downloading needed headers
  Resolving dependencies
  Dependencies resolved
  I will do the following:
  [install: kernel 2.4.22-1.2188.nptl.i686]
  [update: pango 1.2.5-4.i386]
  ......
  [update: XFree86-font-utils 4.3.0-55.i386]
  Is this ok [y/N]:y
  
  在本例中,Yum告訴我有76個可用更新(我進行測試的系統在安裝完Fedora以後還從來沒有更新過).要安裝所有這些更新,所要做的只是輸入「y」即可.如果想更新的只是某一個特定的軟體,可以將上述命令稍做修改:
  
  yum update nmap
  
  會看到如下所述的內容:
  
  Gathering header information file(s) from server(s)
  Server: Fedora Core 1 - i386 - Base
  Server: Fedora Core 1 - i386 - Released Updates
  Finding updated packages
  Downloading needed headers
  No Packages Available for Update
  No actions to take
  
  在上述的例子中,Yum告訴我,我的系統上的nmap已經是最新版本了,因此無需進行任何升級.下面我們來看一看如何安裝一個機器上沒有的軟體包,比如要安裝的是XChat IRC客戶端,只需要輸入以下命令即可:
  
  yum install xchat
  
  可能會看到如下信息:
  
  Gathering header information file(s) from server(s)
  Server: Fedora Core 1 - i386 - Base
  Server: Fedora Core 1 - i386 - Released Updates
  Finding updated packages
  Downloading needed headers
  Resolving dependencies
  Dependencies resolved
  I will do the following:
  [install: xchat 1:2.0.7-1.FC1.0.i386]
  Is this ok [y/N]:
  
  按「y」就可以進行軟體的安裝,會出現下列內容提示安裝成功:
  
  Getting xchat-2.0.7-1.FC1.0.i386.rpm
  xchat-2.0.7-1.FC1.0.i386.
  100% |==========| 1.1 MB  01:51
  Running test transaction:
  Test transaction complete, Success!
  xchat 100 % done 1/1
  Installed: xchat 1:2.0.7-1.FC1.0.i386
  Transaction(s) Complete
  
  雖然我的機器上的namp已經不需要再進行升級,不過我還想為其安裝一個GUI界面,但又不知道需要什麼軟體包,這時只需要輸入以下命令:
  
  yum search nmap gui
  
  可能看到的內容如下:


  
  Gathering header information file(s) from server(s)
  Server: Fedora Core 1 - i386 - Base
  Server: Fedora Core 1 - i386 - Released Updates
  Finding updated packages
  Downloading needed headers
  Looking in available packages for a providing package
  Available package: redhat-config-printer-gui.i386
  0:0.6.79.5-1 from updates-released matches with
  redhat-config-printer-gui
  Available package: nmap.i386 2:3.48-1
  from base matches with nmap
  Available package: nmap-frontend.i386
  2:3.48-1 from base matches with
  Available package: nmap-frontend.i386
  2:3.48-1 from base matches with nmap-frontend
  ......
  2 results returned
  
  如


[火星人 ] Yum可以讓你隨時擁有最新的Fedora已經有624次圍觀

http://coctec.com/docs/linux/show-post-56225.html