1.1 語法:
yum [options] [command] [package ...]
1.2 描述:
yum 是一個交互式的,基於rpm包的管理工具。它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。 yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。
1.3 選項
-h:顯示幫助信息;
-y:對所有的提問都回答“yes“。 常用
-c:指定配置文件;
-q:安靜模式;
-v:詳細模式;
-d:設置調試等級(0-10);
-e:設置錯誤等級(0-10);
-R:設置yum處理一個命令的最大等待時間;
-C:完全從緩存中運行,而不去下載或者更新任何頭文件。
1.4 命令:
install:用來安裝最新版本的軟件包或組,並且會自動安裝所需的依賴軟件包。
update:如果沒有指定軟件包名稱,則會升級已經安裝的所有軟件到最新版本。如果指定了軟件包,則只升級指定的軟件包。
update-to:類似於update命令,但需要指定升級後的版本號。
check-update:用於檢查軟件包可用的最新版本。如果不指定軟件包,則列出所有本地以及安裝的軟件可用升級版本。
upgrade:類似於update,當yum.conf文件中的obsoletes=1時,update和upgrade參數意思相同。當然,從本質上講,update,是修補bug,或功能少量增加。而upgrade一般是是大的版本不同。改變比較大。要搞清楚其中不同。
upgrade-to:類似於update-to。
distribution-synchronization or distro-sync:把本地的軟件版本變成和yum源上最新的版本一直。可能升級也可能降級。關鍵看你本地已安裝軟件版本和yum源上版本。最軟件包組不生效。
remove or erase:刪除指定的軟件包。已經依賴當前軟件的其他軟件。
list:用來顯示軟件包的各種信息。內容簡單了點。想要複雜內容,查看後面的list命令的選項。
# yum list iftop
iftop.x86_64 1.0-0.14.pre4.el6 @epel
info:顯示軟件包各種信息。常用
provides or whatprovides :該命令輸出內容包含在info命令中。
search:強大的命令,用於在yum源中搜索目標軟件包。使用頻率更高。
clean:清楚緩存。還有特定的選項。查看後面的《CLEAN OPTIONS》部分
makecache: 下載header和元數據到本地。下次安裝軟件時,就會搜索本地的元數據。默認緩存時間是6小時,即6h。
#yum makeache
Loaded plugins: fastestmirror
Determining fastest mirrors
epel/metalink
* elrepo: mirrors.tuna.tsinghua.edu.cn
* epel: mirrors.ustc.edu.cn
base
base/group_gz
base/filelists_db
base/other_db
epel
epel/filelists_db
epel/updateinfo
epel/primary_db
epel/other_db
Metadata Cache Created
groupinstall:安裝軟件包組。
groupupdate:更新軟件包組。
grouplist: 顯示所有的可用軟件包組。
groupremove: 刪除軟件包組。
groupinfo:顯示軟件包組信息。
shell :把安裝命令放到文件中。通過shell命令調用該文件。
resolvedep:顯示指定軟件包的依賴。但好像不全。只能顯示一個依賴軟件包。
localinstall:用於安裝本地的一組rpm文件。如果需要,會調用倉庫依賴關鍵庫。前提是你要把相關rpm文件都下載好,否則無法安裝。
localupdate:用於升級本地rpm文件。
reinstall:先檢查指定軟件包的完整性。如果發生問題才重新安裝
downgrade:降級
deplist:顯示軟件包依賴關係,比resolvedep詳細多了。
repolist:顯示所有的yum源:
# yum repolist
repo id repo name status
base CentOS-6 - Base - 163.com 6,706
elrepo ELRepo.org Community Enterprise Linux Repository - el6 263
epel Extra Packages for Enterprise Linux 6 - x86_64 12,327
extras CentOS-6 - Extras - 163.com 64
updates CentOS-6 - Updates - 163.com 270
LIST OPTIONS (較少使用)
yum list all:列出所有可用的軟件包。等同於yum list available
yum list updates:列出所有可以升級的軟件。
yum list installed: 列出所有已經安裝的軟件。好用,常用。
yum list extras:系統上的已經安裝的軟件包,其不在所有倉庫中列表。很少用。
yum list obsoletes :
yum list recent:顯示最近被加入到倉庫中的軟件列表。
CLEAN OPTIONS(較少使用)
yum clean expire-cache
yum clean packages
yum clean headers #執行yum makecache會緩存headers。
yum clean metadata #執行yum makecache會緩存metadata
yum clean dbcache
yum clean rpmdb
yum clean plugins
yum clean all
2、yum配置文件
# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum下載的RPM包的緩存目錄
keepcache=1 #緩存是否保存,1保存,0不保存。
debuglevel=2 #調試級別(0-10),默認爲2(具體調試級別的應用,我也不瞭解)。
logfile=/var/log/yum.log #yum的日誌文件所在的位置
exactarch=1 #在更新的時候,是否允許更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1 #當等於1時,參數update和upgrade意思相同。默認是1.
gpgcheck=1 #是否檢查GPG(GNU Private Guard),一種密鑰方式簽名。
plugins=1 #是否允許使用插件,默認是0不允許,但是我們一般會用yum-fastestmirror這個插件。
installonly_limit=5 #允許保留多少個內核包。
exclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多個RPM包之間使用空格分離。
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
#還有一個我找了很久的東西,其實默認配置文件中就有的,只是被註釋了。
metadata_expire=90m #當執行yum makecache後,產生的metadata cache多久會失效,過期。h表示小時,m表示分鐘。默認是6h。never表示永不過期。
關於yum.conf配置文件的詳細幫助,查看man yum.conf手冊。
3、yum源文件repo說明:
[base] #倉庫id(repositoryid),必須是唯一的。
name=CentOS-$releasever - Base - 163.com #倉庫的名字,描述倉庫作用。
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
#baseurl 必須一個目錄,是yum倉庫repodata目錄,即按照repodata格式要求存放各種文件。協議支持多種:http://, ftp:// or file://。 也可以指定多個basesurl。比如:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
#mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo.el6
#mirrorlist url指向一個文件,其中包含所有的baseurl地址。該選項可以baseurl替代。只要把其中所有內容都放到baseurl選項中即可。另外,還有一個metalink選項,類似於mirrolist。啓用metalink,就會禁用mirroslist選項。
enabled=1 #yum根據此標識判斷是否啓用該倉庫。
gpgcheck=1 #是否對所下載的軟件進行GPG簽名檢查。可以選擇關閉。不影響使用。
repo_gpgcheck=0 #是否對這個倉庫的repodata數據做GPG簽名檢查。默認不設置。
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#gpgkey用於該倉庫的GPG key文件。和gpgcheck選項配合使用,如果設置爲1,則會調用當前選項的url。可以指定多個url。
4、yum公共源
用於php的rpm安裝
rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
社區企業Linux倉庫
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
查看官網,可以看到更多其他yum源:
http://elrepo.org/tiki/tiki-index.php
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uhv
https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
163鏡像源:
官方網站查看:http://mirrors.163.com/.help/centos.html
操作:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cd /etc/yum.repos.d/
Centos 6:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
最好下載最新版本。因爲yum源會定期更新。看說明是每4小時更新一次。
Centos 7:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
Centos 5:
http://mirrors.163.com/.help/CentOS5-Base-163.repo
運行以下命令生成緩存
#yum clean all #yum makecache
4、創建本地yum源
目標:
把ES6.3的光盤中的Packages RPM包當做yum本地安裝源。RPM包放到/var/ftp/pub中。
步驟:
1.首先掛着光盤:
#mount -iso9660 /dev/cdrom /mnt/cdrom
2.安裝ftp服務
#cd /mnt/cdrom/Packages
#rpm -ivh vsftpd
#service vsftpd start
3.把光盤的Packages文件夾中的RPM包都拷貝到/var/ftp/pub中。
#cp -rv /mnt/cdrom/Packages /var/ftp/pub
備註:此時,Packages文件夾被拷貝到/var/ftp/pub下了。-rv參數的意思是把文件夾拷貝到目標目錄中,並顯示拷貝過程。
4.安裝Createrepo程序
#cd /mnt/cdrom/Packages
#rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
#rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
#rpm -ivh createrepo-0.9.8-5.el6.noarch.rpm
5. 拷貝光盤上的comps-rhel6-Server.xml文件到/var/ftp/pub/Packages
# cp /mnt/cdrom/Server/repodata/c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml /var/ftp/pub/Packages
6. 使用Createrepo程序更新c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml。這個文件中存儲的是所有RPM包的索引,執行完成後,將在Packages中新生成repodata文件夾。用於存儲索引。
#cd /var/ftp/pub/Packages
#createrepo -g c27858b7430afeb372d0dd50d8a56fd46b47bc81bb9580c2bb91ab697e40592e-comps-rhel6-Server.xml /var/ftp/pub/Packages
7. 修改yum文件,調用本地源
#cd /etc/yum.repos.d
#cp rehl-source.repo rehl-source.repo.bak
#vi rehl-source.repo
編輯該文件:
[Packages]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///var/ftp/pub/Packages/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release