一、什麼是yum
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。基于RPM包管理,能夠從指定的伺服器自動下載下傳RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載下傳、安裝。
二、yum常用選項和參數
常用參數列舉:
install:安裝rpm軟體包;
update:更新rpm軟體包;
check-update:檢查是否有可用的更新rpm軟體包;
remove:删除指定的rpm軟體包;
search:檢查軟體包的資訊;
info:顯示指定的rpm軟體包的描述資訊和概要資訊;
shell:進入yum的shell提示符;
resolvedep:顯示rpm軟體包的依賴關系;
localinstall:安裝本地的rpm軟體包;
localupdate:顯示本地rpm軟體包進行更新;
deplist:顯示rpm軟體包的所有依賴關系。
repolist[all|enabled(預設)|disabled]:列出所有可用的yum repo
clean [all|packeages(包)|metadata(中繼資料)|expire-cache(過期資料)|rpmdb(rpm資料)plugins]:清理緩存
list [all|installed(已安裝過的)|available(可用)]:列出yum包
--nogpgcheck 手動禁止檢查來源及完整性
常用選項:
-h:顯示幫助資訊;
-y:對所有的提問都回答“yes”;
-c:指定配置檔案;
-q:安靜模式;
-v:詳細模式;
-d:設定調試等級(0-10);
-e:設定錯誤等級(0-10);
-R:設定yum處理一個指令的最大等待時間;
-C:完全從緩存中運作,而不去下載下傳或者更新任何頭檔案。
三、yum源的配置
yum 的配置檔案分為兩部分:main 和repository
main 部分定義了全局配置選項,整個yum 配置檔案應該隻有一個main。常位于/etc/yum.conf 中。
repository 部分定義了每個源/伺服器的具體配置,可以有一到多個。常位于/etc/yum.repo.d 目錄下的各檔案中。
yum.conf 檔案一般位于/etc目錄下,一般其中隻包含main部分的配置選項。
[root@hpf-linux ~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
//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 檔案去查詢過去所做的更新。
exactarch=1 //有1和0兩個選項,設定為1,則yum 隻會安裝和系統架構比對的軟體包,例如,yum 不會将i686的軟 件包安裝在适合i386的系統中。預設為1。
obsoletes=1 //這是一個update 的參數,具體請參閱yum(8),簡單的說就是相當于upgrade,允許更新陳舊的RPM包。
gpgcheck=1 // 有1和0兩個選擇,分别代表是否是否進行gpg(GNU Private Guard) 校驗,以确定rpm 包的來源是有效和安全的。這個選項如果設定在[main]部分,則對每個repository 都有效。預設值為0。
plugins=1 //是否啟用插件,預設1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
四、配置本地yum源
1、挂載系統CD光牒
[root@hpf-linux ~]# mount /dev/cdrom /media/cdrom/
2、配置本地yum源
[root@hpf-linux ~]# cd /etc/yum.repos.d/
[root@hpf-linux yum.repos.d]# vim CentOS-Media.repo
在baseurl 中修改第2個路徑為/mnt/cdrom(即為CD光牒挂載點)
将enabled=0改為1
3、禁用預設的yum 網絡源
[root@hpf-linux yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
将yum 網絡源配置檔案改名為CentOS-Base.repo.bak,否則會先在網絡源中尋找适合的包,改名之後直接從本地源讀取。
4、執行yum指令安裝軟體
[root@hpf-linux yum.repos.d]# rpm -e zsh
[root@hpf-linux yum.repos.d]# yum install zsh
在安裝的顯示資訊中有下面一段可以說明是使用的本地yum源:
..................................................
========================================================================================
軟體包 架構 版本 倉庫 大小
========================================================================================
正在安裝:
zsh i686 4.3.10-7.el6 c6-media 2.1 M
..................................................
[root@hpf-linux yum.repos.d]# cat CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
通過檢視剛才配置的yum源的倉庫名為c6-media和使用yum安裝所提示顯示的倉庫名一緻,說明配置成功了。
五、配置yum源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 隻能有一個。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源
1、yum配置檔案中可用的宏
$releasever:程式的版本,對Yum而言指的是redhat-relrase版本。隻替換為主版本号,如Redhat6.5 則替換為6
$arch:系統架構
$basharch:系統基本架構,如i686,i586等的基本架構為i386
$YUM0-9:在系統定義的環境變量,可以在yum中使用
使用阿裡雲的源:
2、下載下傳配置檔案配置檔案
[root@hpf-linux yum.repos.d]# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-6.repo
3、使用yum安裝
[root@hpf-linux yum.repos.d]# yum repolist //加載可用的可用的yum repo
已加載插件:fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.7 kB 00:00
base/primary_db | 3.6 MB 00:05
epel | 4.4 kB 00:00
epel/primary_db | 5.5 MB 00:03
extras | 3.4 kB 00:00
extras/primary_db | 29 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 3.6 MB 00:02
倉庫辨別 倉庫名稱 狀态
base CentOS-6 - Base - mirrors.aliyun.com 4,926
epel Extra Packages for Enterprise Linux 6 - i386 9,551
extras CentOS-6 - Extras - mirrors.aliyun.com 34
updates CentOS-6 - Updates - mirrors.aliyun.com 1,015
repolist: 15,526
[root@hpf-linux yum.repos.d]# yum install -y zsh
已加載插件:fastestmirror
設定安裝程序
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
解決依賴關系
--> 執行事務檢查
---> Package zsh.i686 0:4.3.10-9.el6 will be 安裝
--> 完成依賴關系計
依賴關系解決
==========================================================================================
軟體包 架構 版本 倉庫 大小
==========================================================================================
正在安裝:
zsh i686 4.3.10-9.el6 updates 2.1 M
事務概要
==========================================================================================
Install 1 Package(s)
總下載下傳量:2.1 M
Installed size: 4.6 M
下載下傳軟體包:
zsh-4.3.10-9.el6.i686.rpm | 2.1 MB 00:02
運作 rpm_check_debug
執行事務測試
事務測試成功
執行事務
Warning: RPMDB altered outside of yum.
正在安裝 : zsh-4.3.10-9.el6.i686 1/1
Verifying : zsh-4.3.10-9.el6.i686 1/1
已安裝:
zsh.i686 0:4.3.10-9.el6
完畢!
通過yum安裝時顯示的倉庫名可以看出手動配置的yum源已生效,在使用變量進行配置檔案時可能會出現錯誤的連結導緻不能解析到鏡像網站,若出現這種情況就手動輸入系統的版本号以及平台的架構!
七、使用第三方軟體庫epel
Centos/RHEL預設的yum軟體倉庫非常有限,僅僅限于發行版本那幾張盤裡面的正常包和一些軟體包的更新,可以安裝第三方的epel擴充軟體倉庫,預設安裝的epel-release擴充源由于是國外的,是以在日常使用時速度不是很快,下面就是介紹使用阿裡雲的第三方源。
1、先确認自己機器是否安裝的有其他的epel擴充源,若有請解除安裝。解除安裝後下載下傳 阿裡雲提供的epel源的下載下傳到指定的位置。
[root@hpf-linux ~]# rpm -q epel-releasepackage
epel-release is not installed
[root@hpf-linux ~]#wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
2、檢視下載下傳檔案的内容
[root@hpf-linux yum.repos.d]# cat epel-6.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=
http://mirrors.aliyun.com/epel/6/
$basearch
http://mirrors.aliyuncs.com/epel/6/
$basearch
#mirrorlist=
https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=
$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
baseurl=
http://mirrors.aliyun.com/epel/6/
$basearch/debug
http://mirrors.aliyuncs.com/epel/6/
$basearch/debug
#mirrorlist=
https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=
$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=0
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
baseurl=
http://mirrors.aliyun.com/epel/6/SRPMS
http://mirrors.aliyuncs.com/epel/6/SRPMS
#mirrorlist=
https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=
$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
3、測試使用epel擴充源
[root@hpf-linux ~]# yum install -y htop
已加載插件:fastestmirror
設定安裝程序
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.7 kB 00:00
epel | 4.4 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
解決依賴關系
--> 執行事務檢查
---> Package htop.i686 0:1.0.1-2.el6 will be 安裝
--> 完成依賴關系計算
依賴關系解決
============================================================================================
軟體包 架構 版本 倉庫 大小
============================================================================================
正在安裝:
htop i686 1.0.1-2.el6 epel 73 k
事務概要
============================================================================================
Install 1 Package(s)
總下載下傳量:73 k
Installed size: 158 k
下載下傳軟體包:
htop-1.0.1-2.el6.i686.rpm | 73 kB 00:00
運作 rpm_check_debug
執行事務測試
事務測試成功
執行事務
Warning: RPMDB altered outside of yum.
正在安裝 : htop-1.0.1-2.el6.i686 1/1
Verifying : htop-1.0.1-2.el6.i686 1/1
已安裝:
htop.i686 0:1.0.1-2.el6
完畢!
#/bin/bash
# 測試系統為CentOS 6
# 注意:此腳本使用前提是該系統能夠通路網際網路!
aliyum () {
[ -f /etc/yum.repos.d/CentOS-Base.repo ] && /bin/mv /etc/yum.repos.d/CentOS-Base.repo{,.bak}
which wget &> /dev/null || yum install -y wget &> /dev/null
/usr/bin/wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-6.repo &> /dev/null
}
aliepel () {
rpm -q epel-relase &> /dev/null && yum remove epel-release &> /dev/null
which wget &> /dev/null || yum install -y wget &> /dev/null
/usr/bin/wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo &> /dev/nvll
}
aliyum
aliepel
yum repolist