1. 程式人生 > >linux下 yum命令詳解

linux下 yum命令詳解

本文轉自http://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html

yum(全稱為 Yellow dog Updater, Modified)

是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令,而且命令簡潔而又好記。

yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可選的,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。[command]為所要進行的操作,[package ...]是操作的物件。

概括了部分常用的命令包括:

自動搜尋最快映象外掛:   yum install yum-fastestmirror
安裝yum圖形視窗外掛:    yum install yumex
檢視可能批量安裝的列表: yum grouplist

1 安裝
yum install 全部安裝
yum install package1 安裝指定的安裝包package1
yum groupinsall group1 安裝程式組group1

2 更新和升級
yum update 全部更新
yum update package1 更新指定程式包package1
yum check-update 檢查可更新的程式
yum upgrade package1 升級指定程式包package1
yum groupupdate group1 升級程式組group1

3 查詢和顯示
yum info package1 顯示安裝包資訊package1
yum list 顯示所有已經安裝和可以安裝的程式包
yum list package1 顯示指定程式包安裝情況package1
yum groupinfo group1 顯示程式組group1資訊yum search string 根據關鍵字string查詢安裝包

4 刪除程式
yum remove | erase package1 刪除程式包package1
yum groupremove group1 刪除程式組group1
yum deplist package1 檢視程式package1依賴情況

5 清除快取
yum clean packages 清除快取目錄下的軟體包
yum clean headers 清除快取目錄下的 headers
yum clean oldheaders 清除快取目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除快取目錄下的軟體包及舊的headers

比如,要安裝遊戲程式組,首先進行查詢:
#:yum grouplist
可以發現,可安裝的遊戲程式包名字是”Games and Entertainment“,這樣就可以進行安裝:
#:yum groupinstall "Games and Entertainment"
所 有的遊戲程式包就自動安裝了。在這裡Games and Entertainment的名字必須用雙引號選定,因為linux下面遇到空格會認為檔名結束了,因此必須告訴系統安裝的程式包的名字是“Games and Entertainment”而不是“Games"。

此外,還可以修改配置檔案/etc/yum.conf選擇安裝源。可見yum進行配置程式有多方便了吧。更多詳細的選項和命令,當然只要在命令提示行下面:man yum

yum groupinstall "KDE (K Desktop Environment)"

yum install pirut k3b mikmod

yum groupinstall "Server Configuration Tools"

yum groupinstall "Sound and Video"

#yum groupinstall "GNOME Desktop Environment"

yum groupinstall "Legacy Software Support"

yum groupinstall "Development Libraries"

yum groupinstall "Development Tools"

#yum groupinstall "Windows File Server"

yum groupinstall "System Tools"

yum groupinstall "X Window System"

yum install php-gd
yum install gd-devel
yum groupinstall "Chinese Support"


#yum install samba-common  //該執行會一起安裝 samba-client
#yum install samba

yum install gcc
yum install cpp
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install gd-devel php-gd
yum install gd-devel
yum install gcc
yum install cpp
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install gd-devel php-gd
yum install gd-devel
yum install zlib-devel
yum install freetype-devel freetype-demos freetype-utils
yum install libpng-devel libpng10 libpng10-devel
yum install libjpeg-devel
yum install ImageMagick
yum install php-gd
yum install flex
yum install ImageMagick-devel


#yum install system-config-bind         
#yum groupinstall "DNS Name Server"      //安裝 bind 及 bind-chroot 套件
yum groupinstall "MySQL Database"'

yum clean all

------------------------------------------------------------------------------------------------------------------------------------

裝了個fedora linux不能用中文輸入是一件很棘手的事,連搜解決方案都沒法搜。只能勉強用幾個拼音碰碰運氣,看Google能不能識別了。而我就遇見了這樣的事。
解決方案:
yum install scim* -y

yum 命令詳解:
Redhat和Fedora的軟體安裝命令是rpm,但是用rpm安裝軟體最大的麻煩就是需要手動尋找安裝該軟體所需要的一系列依賴關係,超級 麻煩不說,要是軟體不用了需要解除安裝的話由於解除安裝掉了某個依賴關係而導致其他的軟體不能用是非常惱人的。令人高興的是,Fedora終於推出了類似於 ubuntu中的apt的命令yum,令Fedora的軟體安裝變得簡單容易。Yum 有以下特點:
*可以同時配置多個資源庫(Repository)
*簡潔的配置檔案(/etc/yum.conf)
*自動解決增加或刪除rpm包時遇到的倚賴性問題
*使用方便
*保持與RPM資料庫的一致性
yum,是Yellow dog Updater Modified的簡稱,起初是由yellow dog這一發行版的開發者Terra Soft研發,用python寫成,那時還叫做yup(yellow dog updater),後經杜克大學的[email protected]開發團隊進行改進,遂有此名。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關資訊,檢查依賴性並自動提示使用者解決。yum的關鍵之處是要有可靠的repository,顧名思義,這是軟體的倉庫,它可以是http或ftp站點, 也可以是本地軟體池,但必須包含rpm的header, header包括了rpm包的各種資訊,包括描述,功能,提供的檔案,依賴性等.正是收集了這些 header並加以分析,才能自動化地完成餘下的任務。

1.yum的一切配置資訊都儲存在一個叫yum.conf的配置檔案中,通常位於/etc目 錄下,這是整個yum系統的重中之重,我在的F9中查看了這一檔案

大家一起來看下:
[[email protected] F9常用文件]$ sudo more /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

下面簡單的對這一檔案作簡要的說明:
cachedir:yum快取的目錄,yum在此儲存下載的rpm包和資料庫,一般是/var/cache/yum。
debuglevel:除錯級別,0──10,預設是2
logfile:yum的日誌檔案,預設是/var/log/yum.log。
exactarch,有兩個選項1和0,代表是否只升級和你安裝軟體包cpu體系一致的包,如果設為1,則如你安裝了一個i386的rpm,則yum不會用686的包來升級。
gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,預設好像也是檢查的。


2.接下來就是yum的使用了,首先用yum來升級軟體,yum的操作大都須有超級使用者的許可權,當然可以用sudo。

yum update,這一步是必須的,yum會從伺服器的header目錄下載rpm的header,放在本地的快取中,這可能會花費一定的時間,但比起yum 給我們帶來方便,這些時間的花費又算的了什麼呢?header下載完畢,yum會判斷是否有可更新的軟體包,如果有,它會詢問你的意見,是否更新,還是說 y吧,把系統始終up to date總是不錯的,這時yum開始下載軟體包並使用呼叫rpm安裝,這可能要一定時間,取決於要更新軟體的數目和網路狀況,萬一網路斷了,也沒關係,再 進行一次就可以了。升級完畢,以後每天只要使用yum check-update檢查一下有無跟新,如果有,就用yum update進行跟新,時刻保持系統為最新,堵住一切發現的漏洞。用yum update packagename 對某個單獨包進行升級。
現在簡單的把yum軟體升級的一些命令羅列一下:
(更新:我在安裝wine的時候是用rpm一個一個安裝的,先安裝以來關係,然後在安裝wine的主包,但是剛剛在論壇上發現來一個好的帖子,就yum的本地安裝。引數是-localinstall
$yum localinstall wine-*
這樣的話,yum會自動安裝所有的依賴關係,而不用rpm一個一個的安裝了,省了好多工作。
還有一個與他類似的引數:
$yum localupdate wine-*
如果有wine的新版本,而且你也下載到來本地,就可以這樣本地更新wine了。)

1.列出所有可更新的軟體清單
命令:yum check-update

2.安裝所有更新軟體
命令:yum update

3.僅安裝指定的軟體
命令:yum install

4.僅更新指定的軟體
命令:yum update

5.列出所有可安裝的軟體清單
命令:yum list

3.使用yum安裝和解除安裝軟體,有個前提是yum安裝的軟體包都是rpm格式的。

安裝的命令是,yum install xxx,yum會查詢資料庫,有無這一軟體包,如果有,則檢查其依賴衝突關係,如果沒有依賴衝突,那麼最好,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除衝突的包,你可以自己作出判斷
刪除的命令是,yum remove xxx,同安裝一樣,yum也會查詢資料庫,給出解決依賴關係的提示。
1.用YUM安裝軟體包
命令:yum install

2.用YUM刪除軟體包
命令:yum remove

4.用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
7.列出所有可更新的軟體包資訊
命令:yum info updates
8.列出所有已安裝的軟體包資訊
命令:yum info installed
9.列出所有已安裝但不在 Yum Repository 內的軟體包資訊
命令:yum info extras
10.列出軟體包提供哪些檔案
命令:yum provides

5.清除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)

以上所有命令引數的使用都可以用man來檢視:
1、安裝圖形版yumex:yum install yumex。
2、安裝額外的軟體倉庫:
rpm.livna.org 的軟體包倉庫:
rpm -ivh http://livna-dl.reloumirrors.net … ease-7-2.noarch.rpm

freshrpms.net 的軟體包倉庫:
rpm –ivh http://ftp.freshrpms.net/pub/fre … 1.1-1.fc.noarch.rpm

3、安裝最快源 yum install yum-fastestmirror

資源真的是非常豐富,從Centos到Ubuntu,ISO映象、升級包,應有盡有,上交的兄弟們真是幸福,羨慕啊。不過還好,我們好歹也算是在教育網內,湊合著也可以沾點光,下載一些。
網址為:ftp://ftp.sjtu.edu.cn/

相應的yum的repo為
[updates]
name=Fedora updates
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=0
[fedora]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

如果在機器上安裝了apt管理器,則相應的源為
repomd ftp://ftp.sjtu.edu.cn/ fedora/linux/updates/$(VERSION)/$(ARCH)/

repomd ftp://ftp.sjtu.edu.cn/ fedora/linux/releases/$(VERSION)/Everything/$(ARCH)/os/

這與前面yum的源的格式上有一些差別,需要加以注意。