yum的使用與配置


yum簡介

  yum,是Yellow dog Updater, Modified 的簡稱,是杜克大學為了提高RPM 軟件包安裝性而開發的一種軟件包管理器。起初是由yellow dog 這一發行版的開發者Terra Soft 研發,用python 寫成,那時還叫做yup(yellow dog updater),后經杜克大學的Linux@Duke 開發團隊進行改進,遂有此名。yum 的宗旨是自動化地升級,安裝/移除rpm 包,收集rpm 包的相關信息,檢查依賴性並自動提示用戶解決。yum 的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http 或ftp 站點,也可以是本地軟件池,但必須包含rpm 的header,header 包括了rpm 包的各種信息,包括描述,功能,提供的文件,依賴性等。正是收集了這些header 並加以分析,才能自動化地完成余下的任務。
  yum 的理念是使用一個中心倉庫(repository)管理一部分甚至一個distribution 的應用程序相互關系,根據計算出來的軟件依賴關系進行相關的升級、安裝、刪除等等操作,減少了Linux 用戶一直頭痛的dependencies 的問題。這一點上,yum 和apt 相同。apt 原為debian 的deb 類型軟件管理所使用,但是現在也能用到RedHat 門下的rpm 了。
  yum 主要功能是更方便的添加/刪除/更新RPM 包,自動解決包的倚賴性問題,便於管理大量系統的更新問題。
  yum 可以同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf),自動解決增加或刪除rpm 包時遇到的依賴性問題,保持與RPM 數據庫的一致性。

配置

  yum 的配置文件分為兩部分:main 和repository

  main 部分定義了全局配置選項,整個yum 配置文件應該只有一個main。常位於/etc/yum.conf 中。
  repository 部分定義了每個源/服務器的具體配置,可以有一到多個。常位於/etc/yum.repo.d 目錄下的各文件中。
  yum.conf 文件一般位於/etc目錄下,一般其中只包含main部分的配置選項。

  # cat /etc/yum.conf

[main]
cachedir=/var/cache/yum
  //yum 緩存的目錄,yum 在此存儲下載的rpm 包和數據庫,默認設置為/var/cache/yum
keepcache=0
  //安裝完成后是否保留軟件包,0為不保留(默認為0),1為保留
debuglevel=2
  //Debug 信息輸出等級,范圍為0-10,缺省為2
logfile=/var/log/yum.log
  //yum 日志文件位置。用戶可以到/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和0兩個選項,表示yum 是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum 不會出現錯誤信息。默認是0。
exactarch=1
  //有1和0兩個選項,設置為1,則yum 只會安裝和系統架構匹配的軟件包,例如,yum 不會將i686的軟件包安裝在適合i386的系統中。默認為1。
retries=6
  //網絡連接發生錯誤后的重試次數,如果設為0,則會無限重試。默認值為6.
obsoletes=1
  //這是一個update 的參數,具體請參閱yum(8),簡單的說就是相當於upgrade,允許更新陳舊的RPM包。
plugins=1
  //是否啟用插件,默認1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
yum.conf

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

 exclude=selinux*  // 排除某些軟件在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對於安裝了諸如美化包,中文補丁的朋友特別有用。
 gpgcheck=1  // 有1和0兩個選擇,分別代表是否是否進行gpg(GNU Private Guard) 校驗,以確定rpm 包的來源是有效和安全的。這個選項如果設置在[main]部分,則對每個repository 都有效。默認值為0。

1. 配置本地yum源

(1) 掛載光盤

mount /dev/cdrom /mnt/

(2)配置本地yum源

查看/etc/yum.repo.d/下有四個文件

CentOS-Base.repo 是yum 網絡源的配置文件

CentOS-Media.repo 是yum 本地源的配置文件

 

 修改CentOS-Media.repo文件

#cat /etc/yum.repo.d/CentOS-Media.repo

# CentOS-Media.repo
#
#  This repo can be used with mounted DVD media, verify the mount point for
#  CentOS-6.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c6-media [command]
#  
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c6-media [command]

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
CentOS-Media.repo

在baseurl 中修改第2個路徑為 /mnt/(即為光盤掛載點)

將enabled=0改為1

 (3)禁用網絡yum源

CentOS-Base.repo 重命名為CentOS-Base.repo.bak,否則會先在網絡源中尋找適合的包,改名之后直接從本地源讀取。
(4) 執行yum命令測試

yum install bind

 關於repo的格式

所有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/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。

 配置阿里雲YUM源

阿里雲Linux安裝鏡像源地址:
  http://mirrors.aliyun.com/
  http://mirrors.aliyun.com/repo/

CentOS系統更換軟件安裝源
第一步:備份你的原鏡像文件,以免出錯后可以恢復。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 

第二步:下載新的CentOS-Base.repo 到/etc/yum.repos.d/ 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 

第三步:運行yum makecache生成緩存

yum clean all  //清理緩存
yum makecache  //更新緩存

 yum工具的使用

rpm的更新

檢查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大規模的版本升級,與yum update不同的是,連舊的淘汰的包也升級
#yum upgrade

 rpm包的安裝和刪除

安裝rpm包,如xmms-mp3
#yum install xmms-mp3
刪除rpm包,包括與該包有倚賴性的包
#yum remove licq
注:同時會提示刪除licq-gnome,licq-qt,licq-text

 yum暫存(/var/cache/yum/)的相關參數

清除暫存中rpm包文件
#yum clean packages
清除暫存中rpm頭文件
#yum clearn headers
清除暫存中舊的rpm頭文件
#yum clean oldheaders
清除暫存中舊的rpm頭文件和包文件
#yum clearn 或#yum clearn all
注:相當於yum clean packages + yum clean oldheaders

 包列表

列出資源庫中所有可以安裝或更新的rpm包
#yum list
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包
#yum list mozilla#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包
列出資源庫中所有可以更新的rpm包
#yum list updates
列出已經安裝的所有的rpm包
#yum list installed
列出已經安裝的但是不包含在資源庫中的rpm包
#yum list extras
注:通過其它網站下載安裝的rpm包

rpm包信息顯示(info參數同list)

列出資源庫中所有可以安裝或更新的rpm包的信息
#yum info
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包的信息
#yum info mozilla#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包的信息
列出資源庫中所有可以更新的rpm包的信息
#yum info updates
列出已經安裝的所有的rpm包的信息
#yum info installed
列出已經安裝的但是不包含在資源庫中的rpm包的信息
#yum info extras
注:通過其它網站下載安裝的rpm包的信息

搜索rpm包

搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索
搜索有包含特定文件名的rpm包
#yum provides realplay 

增加資源庫

例如:增加rpm.livna.org作為資源庫
安裝Livna.org rpms GPG key
#rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY
檢查GPG Key
# rpm -qa gpg-pubkey*
顯示Key信息
#rpm -qi gpg-pubkey-a109b1ec-3f6e28d5
(注:如果要刪除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)

yum常用的命令

# yum install xxx              安裝xxx軟件
# yum info xxx                  查看xxx軟件的信息
# yum remove xxx             刪除軟件包
# yum list                      列出軟件包
# yum clean                     清除緩沖和就的包
# yum provides xxx              以xxx為關鍵字搜索包(提供的信息為關鍵字)
# yum search xxx              搜索軟件包(以名字為關鍵字)
# yum groupupdate xxx       更新xxx軟件分組
# yum grouplist xxx
# yum groupremove xxx
# yum groupinfoinfo xxx
這三個都是一組為單位進行升級 列表和刪除的操作。。比如 "Mysql Database"就是一個組會同時操作相關的所有軟件包;
# yum update                  系統升級
# yum list available          列出所有升級源上的包;
# yum list updates            列出所有升級源上的可以更新包;
# yum list installed          列出已經安裝的包;
# yun update kernel           升級內核;

 搭建內網YUM倉庫:http://www.cnblogs.com/zhichaoma/p/7581957.html

 更多使用請參考:http://man.linuxde.net/yum

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM