yum介紹

【簡介】
yum是一個爲rpm系統設計的用於軟件包自動更新的安裝刪除程序。它可以自動解決軟件包依賴問題,使得安裝刪除rpm軟件變得更加容易。
yum,即yellowdog updater modified,是由DUKE大學的Linux開發小組開發的。
  
【配置文件簡介】
yum的配置文件分爲兩部分:main和repository
main部分定義了全局配置選項,整個yum配置文件應該只有一個main。常位於/etc/yum.conf中。
repository部分定義了每個源/服務器的具體配置,可以有一到多個。常位於/etc/yum.repo.d目錄下的各文件中。
  
【yum.conf簡介】
yum.conf文件一般位於/etc目錄下,一般其中只包含main部分的配置選項。其內容大致爲:
[main]
cachedir=/var/cache/yum
#cachedir:yum更新軟件時的緩存目錄,默認設置爲/var/cache/yum
debuglevel=2
#debuglevel:Debug信息輸出等級,範圍爲0-10,缺省爲2
logfile=/var/log/yum.log
#logfile:存放系統更新軟件的日誌的目錄。用戶可以到/var/log/yum.log文件去查詢自己在過去的日子裏都做了哪些更新。
pkgpolicy=newest
# 包的策略。一共有兩個選項,newest和last,這個作用是如果你設置了多個repository,而同一軟件在不同的repository中同 時存在,yum應該安裝哪一個,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將服務器id以字母表排序,並選擇最後的那個服務器上的軟件安裝。一般都是選newest。
distroverpkg=redhat-release
#指定一個軟件包,yum會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm包。
tolerant=1
#如果值爲1,則yum會忽略任何的有關包的錯誤。舉例來說,當執行yum來安裝baz時,如果baz包已經安裝在系統中了,則yum會繼續重複安裝baz,而不會報錯。默認值爲1。
exactarch=1
#設置爲1,則yum只會安裝和系統架構匹配的軟件包,例如,yum不會將i686的軟件包安裝在適合i386的系統中。默認爲1
retries=20
#網絡連接發生錯誤後的重試次數,如果設爲0,則會無限重試。默認值爲6
obsoletes=1
#此選項在進行發行版跨版本升級的時候會用到。
gpgcheck=1
#有1和0兩個選擇,分別代表是否是否進行gpg校驗。這個選項如果設置在[main]部分,則對每個repository都有效。默認值爲0.
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
  
【yum.conf中的變量】

$releasever:代表發行版本的版本號。如果系統是fedora core 6的話,則返回6
$basearch:顯示基本架構類型。如果系統爲i386或i686等,則均返回i386
  
【配置yum源
 
配置工作實在/etc/yum.repo.d目錄下完成。或許當你打開這個目錄ls時,會發現很多後綴是.repo的文件,這些文件都是官方源的 repo文件。yum正是通過repo文件裏面提供的源(鏈接或本地目錄)去下載依賴軟件並安裝。官方源的 repo文件需要付費後才能連接,因此,爲了免費通過yum安裝軟件,我們可以建立自己的.repo文件(可在網上找現成的),使repo文件裏面的源是開源的。
  
.repo文件的一些說明:
所有服務器設置都應該遵循如下格式:
[serverid]
name=Some name for this server
baseurl=url://path/to/repository/
其中serverid是用於差別各個不同的repository,必須有一個獨一無二的名稱。
name,是對repository的描述,支持像$releasever $basearch這樣的變量;
baseurl是服務器設置中最重要的部分,只有設置正確,才能從上面獲取軟件。他的格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
其中url支持的協議有 http:// ftp:// file://三種。baseurl後能跟多個url,你能自己改爲速度比較快的映像站,但baseurl只能有一個,也就是說不能像如下格式:
baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/
其中url指向的目錄必須是這個repository header目錄的上一級,他也支持$releasever $basearch這樣的變量。
url之後能加上多個選項,如gpgcheck、exclude、failovermethod等,比如:
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch
http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch
gpgcheck=1
exclude=gaim
failovermethod=priority
其中gpgcheck,exclude的含義和[main]部分相同,但只對此服務器起作用,
failovermethode 有兩個選項roundrobin和priority,意思分別是有多個url可供選擇時,yum選擇的次序,roundrobin是隨機選擇,如果連接失 敗則使用下一個,依次循環,priority則根據url的次序從第一個開始。如果不指明,默認是roundrobin。
幾個變量
$releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。
$arch,cpu體系,如i686,athlon等
$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。
  
【GPG】
當進行yum install時會發現提示GPG錯誤,這時應該完成有關gpg的rpm導入即可。 所以我們先要到各個repository站點找到gpg key,一般都會放在首頁的醒目位置,一些名字諸如 RPM-GPG-KEY.txt之類的純文本文件,把他們下載,然後用rpm --import xxx.txt命令將他們導入,最好把發行版自帶GPG-KEY也導入,rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方軟件升級用的上。

  
【yum使用
舉例,比如想下載httpd服務器:
1. # yum list|grep httpd
2. # yum install httpd*
這樣就完成了:)
(如果用rpm -ivh來裝httpd的話 可要解決很多rpm依賴的問題啊~~)

【yum相關(補充)】
用YUM升級軟件

打開終端,轉換到root用戶,yum的操作大都須有終極用戶的權限。
首 先,yum update,這一步是必須的,yum會從服務器的header目錄下載rpm的header,放在本地的緩存中,這可能會花費一定的時間,但比起yum 給我們帶來方便,這些時間的花費又算的了什麼呢?header下載完畢,yum會判斷是否有可更新的軟件包,如果有,他會詢問你的意見,是否更新,還是說 y吧,把系統始終up to date總是不錯的,這時yum開始下載軟件包並使用調用rpm安裝,這可能要一定時間,取決於要更新軟件的數目和網絡狀況,萬一網絡斷了,也沒關係,再 進行一次就能了。升級完畢,以後每天只要使用yum check-update檢查一下有無跟新,如果有,就用yum update進行跟新,時刻保持系統爲最新,堵住一切發現的漏洞。
用yum update packagename 對某個獨立包進行升級。
yum更有一個升級指令,yum upgrade,他的初衷是更換廢棄的包,但目前通常用來進行重大的升級,如把發行版整個升高一個版本,由於牽動太大,還不如安裝新的系統。
1.列出所有可更新的軟件清單
命令:yum check-update
2.安裝所有更新軟件
命令:yum update
3.僅安裝指定的軟件
命令:yum install
4.僅更新指定的軟件
命令:yum update
5.列出所有可安?的軟件清單
命令:yum list

用YUM安裝刪除軟件
裝了系統添加刪除軟件是常事,yum同樣能勝任這一任務,只要軟件是rpm安裝的。
安裝的命令是,yum install xxx,yum會查詢數據庫,有無這一軟件包,如果有,則檢查其依賴衝突關係,如果沒有依賴衝突,那麼最佳,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除衝突的包,你能自己作出判斷。
刪除的命令是,yum remove xxx,同安裝相同,yum也會查詢數據庫,給出解決依賴關係的提示。
1.用YUM安裝軟件包
命令:yum install
2.用YUM刪除軟件包
命令:yum remove

用YUM查詢軟件信息
我 們常會碰到這樣的情況,想要安裝一個軟件,只知道他和某方面有關,但又不能確切知道他的名字。這時yum的查詢功能就起作用了。你能用 yum search keyword這樣的命令來進行搜索,比如我們要則安裝一個Instant Messenger,但又不知到底有哪些,這時不妨用 yum search messenger這樣的指令進行搜索,yum會搜索所有可用rpm的描述,列出所有描述中和messeger有關的rpm包,於 是我們可能得到gaim,kopete等等,並從中選擇。
有時我們還會碰到安裝了一個包,但又不知道其用途,我們能用yum info packagename這個指令來獲取信息。
1.使用YUM查找軟件包
命令:yum search
2.列出所有可安裝的軟件包
命令:yum list
3.列出所有可更新的軟件包
命令:yum list updates
4.列出所有已安裝的軟件包
命令:yum list installed
5.列出所有已安裝但不在 Yum Repository ?的軟件包
命令:yum list extras
6.列出所指定的軟件包
命令:yum list
7.使用YUM獲取軟件包信息
命令:yum info
8.列出所有軟件包的信息
命令:yum info
9.列出所有可更新的軟件包信息
命令:yum info updates
10.列出所有已安?的軟件包信息
命令:yum info installed
11.列出所有已安?但不在 Yum Repository ?的軟件包信息
命令:yum info extras
12.列出軟件包提供哪些文件
命令:yum provides

清除YUM緩存
yum 會把下載的軟件包和header存儲在cache中,而不會自動刪除。如果我們覺得他們佔用了磁盤空間,能使用yum clean指令進行清除,更精確 的用法是yum clean headers清除header,yum clean packages清除下載的rpm包,yum clean all一 股腦兒端
1.清除緩存目錄(/var/cache/yum)下的軟件包
命令:yum clean packages
2.清除緩存目錄(/var/cache/yum)下的 headers
命令:yum clean headers
3.清除緩存目錄(/var/cache/yum)下舊的 headers
命令:yum clean oldheaders
4.清除緩存目錄(/var/cache/yum)下的軟件包及舊的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)


由於 Fedora 的 yum
預設的更新主機在國外,也就是 Fedora 的官方更新主機
連線到國外下載,速度之慢,可想而知....
在這裏,我們能修改 yum 的設置文件
把連線主機,改成國內各大學的 Linux 更新主機,如此速度就會比較快
------------------------
/etc/yum.conf
-----------------------
[base]
name=Fedora Core $releasever - $basearch - Base baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
注意紅色的地方,就是 yum 會去連接的更新主機網址
改成以下,可自由選擇搭配
base 主機:
(大小寫有差別,請先實際連接測試,看看服務器是否仍存在)
http://ftp.isu.edu.tw/pub/Linux/Fed...core/1/i386/os/
http://linux.nctu.edu.tw/ftp/dists/...core/1/i386/os/
ftp://ftp.isu.edu.tw/pub/Linux/Fedo...core/1/i386/os/
ftp://linux.nctu.edu.tw/dists/fedora/core/1/i386/os/
ftp://linux.sinica.edu.tw/fedora/linux/core/1/i386/os/
updates 主機:
(大小寫有差別,請先實際測試連接,看看服務器是否仍存在)
http://ftp.isu.edu.tw/pub/Linux/Fed...updates/1/i386/
http://linux.nctu.edu.tw/ftp/dists/...updates/1/i386/
ftp://ftp.isu.edu.tw/pub/Linux/Fedo...updates/1/i386/
ftp://linux.nctu.edu.tw/dists/fedor...updates/1/i386/
ftp://linux.sinica.edu.tw/fedora/li...updates/1/i386/
路徑中的 /1/ 是代表 core 1
如是使用core 2,請自行改成 /2/
改完後保存,不必重啓服務,即時生效
然後 yum 的更新速度就?飛快了
Fedora core 3 和 4 的 yum base 設置設定法:
FC3 和 FC4 的 yum base 設置設定,有別於之前 FC2
並不是在 /etc/yum.conf 中設定
設定方法如下:
cd /etc/yum.repos.d/
vi fedora.repo (設定 base 主機,僅列出需要修改處)
baseurl=http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/$releasever/$basearch/os/
#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
vi fedora-updates.repo (設定 update 主機,僅列出需要修改處)
baseurl=http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/updates/$releasever/$basearch/
#mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever
說明:
1.義守大學是 Fedora 官方認可的臺灣區mirror 站,所以這裏設定義守大學的主機。
 

原文出自:http://scottttocs.blog.163.com/blog/static/1485839712010111604718695/

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