linux下的yum命令原理和詳解
yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器?;禦PM包管理,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可選的,選項包括-h(幫助),-y(當(dāng)安裝過程提示選擇全部為"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 顯示所有已經(jīng)安裝和可以安裝的程序包
yum list package1 顯示指定程序包安裝情況package1
yum groupinfo group1 顯示程序組group1信息yum search string 根據(jù)關(guān)鍵字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
可以發(fā)現(xiàn),可安裝的游戲程序包名字是”Games and Entertainment“,這樣就可以進行安裝:
#:yum groupinstall "Games and Entertainment"
所 有的游戲程序包就自動安裝了。在這里Games and Entertainment的名字必須用雙引號選定,因為linux下面遇到空格會認(rèn)為文件名結(jié)束了,因此必須告訴系統(tǒng)安裝的程序包的名字是“Games and Entertainment”而不是“Games"。
此外,還可以修改配置文件/etc/yum.conf選擇安裝源。可見yum進行配置程序有多方便了吧。更多詳細(xì)的選項和命令,當(dāng)然只要在命令提示行下面:man yum
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 //該執(zhí)行會一起安裝 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安裝軟件最大的麻煩就是需要手動尋找安裝該軟件所需要的一系列依賴關(guān)系,超級 麻煩不說,要是軟件不用了需要卸載的話由于卸載掉了某個依賴關(guān)系而導(dǎo)致其他的軟件不能用是非常惱人的。令人高興的是,F(xiàn)edora終于推出了類似于 ubuntu中的apt的命令yum,令Fedora的軟件安裝變得簡單容易。Yum 有以下特點:
*可以同時配置多個資源庫(Repository)
*簡潔的配置文件(/etc/yum.conf)
*自動解決增加或刪除rpm包時遇到的倚賴性問題
*使用方便
*保持與RPM數(shù)據(jù)庫的一致性
yum,是Yellow dog Updater Modified的簡稱,起初是由yellow dog這一發(fā)行版的開發(fā)者Terra Soft研發(fā),用python寫成,那時還叫做yup(yellow dog updater),后經(jīng)杜克大學(xué)的Linux@Duke開發(fā)團隊進行改進,遂有此名。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關(guān)信息,檢查依賴性并自動提示用戶解決。yum的關(guān)鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http或ftp站點, 也可以是本地軟件池,但必須包含rpm的header, header包括了rpm包的各種信息,包括描述,功能,提供的文件,依賴性等.正是收集了這些 header并加以分析,才能自動化地完成余下的任務(wù)。
1).yum的一切配置信息都儲存在一個叫yum.conf的配置文件中,通常位于/etc目 錄下,這是整個yum系統(tǒng)的重中之重,我在的F9中查看了這一文件,大家一起來看下:
[hanlong@localhost 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包和數(shù)據(jù)庫,一般是/var/cache/yum。
debuglevel:除錯級別,0──10,默認(rèn)是2
logfile:yum的日志文件,默認(rèn)是/var/log/yum.log。
exactarch,有兩個選項1和0,代表是否只升級和你安裝軟件包cpu體系一致的包,如果設(shè)為1,則如你安裝了一個i386的rpm,則yum不會用686的包來升級。
gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行g(shù)pg校驗,如果沒有這一項,默認(rèn)好像也是檢查的。
2).好了,接下來就是yum的使用了,首先用yum來升級軟件,yum的操作大都須有超級用戶的權(quán)限,當(dāng)然可以用sudo。
yum update,這一步是必須的,yum會從服務(wù)器的header目錄下載rpm的header,放在本地的緩存中,這可能會花費一定的時間,但比起yum 給我們帶來方便,這些時間的花費又算的了什么呢?header下載完畢,yum會判斷是否有可更新的軟件包,如果有,它會詢問你的意見,是否更新,還是說 y吧,把系統(tǒng)始終up to date總是不錯的,這時yum開始下載軟件包并使用調(diào)用rpm安裝,這可能要一定時間,取決于要更新軟件的數(shù)目和網(wǎng)絡(luò)狀況,萬一網(wǎng)絡(luò)斷了,也沒關(guān)系,再 進行一次就可以了。升級完畢,以后每天只要使用yum check-update檢查一下有無跟新,如果有,就用yum update進行跟新,時刻保持系統(tǒng)為最新,堵住一切發(fā)現(xiàn)的漏洞。用yum update packagename 對某個單獨包進行升級。
現(xiàn)在簡單的把yum軟件升級的一些命令羅列一下:
(更新:我在安裝wine的時候是用rpm一個一個安裝的,先安裝以來關(guān)系,然后在安裝wine的主包,但是剛剛在論壇上發(fā)現(xiàn)來一個好的帖子,就yum的本地安裝。參數(shù)是-localinstall
$yum localinstall wine-*
這樣的話,yum會自動安裝所有的依賴關(guān)系,而不用rpm一個一個的安裝了,省了好多工作。
還有一個與他類似的參數(shù):
$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會查詢數(shù)據(jù)庫,有無這一軟件包,如果有,則檢查其依賴沖突關(guān)系,如果沒有依賴沖突,那么最好,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除沖突的包,你可以自己作出判斷
刪除的命令是,yum remove xxx,同安裝一樣,yum也會查詢數(shù)據(jù)庫,給出解決依賴關(guān)系的提示。
1.用YUM安裝軟件包
命令:yum install
2.用YUM刪除軟件包
命令:yum remove
4).用yum查詢想安裝的軟件
我們常會碰到這樣的情況,想要安裝一個軟件,只知道它和某方面有關(guān),但又不能確切知道它的名字。這時yum的查詢功能就起作用了。你可以用 yum search keyword這樣的命令來進行搜索,比如我們要則安裝一個Instant Messenger,但又不知到底有哪些,這時不妨用 yum search messenger這樣的指令進行搜索,yum會搜索所有可用rpm的描述,列出所有描述中和messeger有關(guān)的rpm包,于是我們可能得到 gaim,kopete等等,并從中選擇。
有時我們還會碰到安裝了一個包,但又不知道其用途,我們可以用yum info packagename這個指令來獲取信息。
1.使用YUM查找軟件包
命令:yum search
2.列出所有可安裝的軟件包
命令:yum list
3.列出所有可更新的軟件包
命令:yum list updates
4.列出所有已安裝的軟件包
命令:yum list installed
5.列出所有已安裝但不在 Yum Repository 內(nèi)的軟件包
命令:yum list extras
6.列出所指定的軟件包
命令:yum list 7.使用YUM獲取軟件包信息
命令:yum info 8.列出所有軟件包的信息
命令:yum info
9.列出所有可更新的軟件包信息
命令:yum info updates
10.列出所有已安裝的軟件包信息
命令:yum info installed
11.列出所有已安裝但不在 Yum Repository 內(nèi)的軟件包信息
命令:yum info extras
12.列出軟件包提供哪些文件
命令: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)
以上所有命令參數(shù)的使用都可以用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鏡像、升級包,應(yīng)有盡有,上交的兄弟們真是幸福,羨慕啊。不過還好,我們好歹也算是在教育網(wǎng)內(nèi),湊合著也可以沾點光,下載一些。
網(wǎng)址為:ftp://ftp.sjtu.edu.cn/
相應(yīng)的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管理器,則相應(yīng)的源為
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的源的格式上有一些差別,需要加以注意。
下面介紹一下fedora 下安裝 scim
1. 什么輸入法適合我?
fcitx和scim是目前比較好的輸入法, 但是他們的特點不同,fcitx只能輸入中文,而scim可以根據(jù)需要,利用不同的碼表達到中英日…等等各種語言的輸入問題。如果你只懂中文,或者只會輸 入英文&中文,那么fcitx是一個不錯的選擇,因為它漂亮,小巧,實用。如果你還需要輸入日文或者其他語言,那么你因該安裝scim。通 過合理的配置,他能夠讓你像在windows里面一樣,想輸入什么語言就能輸入什么語言,同一種語言想用什么輸入法就用什么輸入法。Scim的擴充性很 強,而且比較穩(wěn)定,我就是選擇的是scim.
2. 安裝一個新輸入法前需要哪些準(zhǔn)備?
如果你選擇fcitx或者scim,那么我建議你刪除系統(tǒng)自帶的中文輸入法。方法如下:
rpm –qa | grep iiimf | xargs rpm –e
rpm –qa | grep Chinput| xargs rpm –e
如果有哪一行提示rpm: no packages given for erase那表示本身你的系統(tǒng)里面沒有該輸入法,不用擔(dān)心,繼續(xù)往下看就行了。
說 明:rpm –qa是列出所有安裝的rpm包,grep iiimf是選擇出其中名字含有iiimf的那些包,xargs rpm –e的意思是把前面列出的這些包刪除掉。Xargs的作用就是把前面通過 | 傳過來的數(shù)據(jù)作為下面命令的參數(shù)。這就好比一個過濾器,首先是放著所有的安裝包,然后grep以后,只留下了含有某些特定關(guān)鍵字的rpm包,然后通過 xargs和rpm –e的組合運用,把剩下的這些含有某特定關(guān)鍵字的包刪掉。這樣就達到了刪除該輸入法及相關(guān)包的目的。下面的Chinput也是如此,在此不再重復(fù)。如果你還安裝了其他輸入法,比如你原來裝的是fcitx,現(xiàn)在想裝scim,那么你最好模仿上面的樣子把fcitx刪除,方法就是把iiimf的位置改成 fcitx就可以了。
在安裝新輸入法之前,最好這樣做一下,因為多種輸入法同時存在一個系統(tǒng)中沒有什么好處,你只可能去用一個,而且他們同時存在可能有的時候會出現(xiàn)問題,想想也知道,會互相競爭嘛。所以在此以后,你應(yīng)該保證系統(tǒng)里面已經(jīng)沒有中文輸入法了。通過類似以下方式驗證:
whereis fcitx
whereis scim
whereis miniChinput
…
3. 輸入法是何時被系統(tǒng)調(diào)用的?
很多人不知道輸入法到底什么時候被load進來,不知道這個當(dāng)然就不知道為什么有的時候呼不出輸入法(因為可能根本沒有調(diào)入)當(dāng)然也不會知道如何配置能夠符合自己的要求。
大 家都知道,linux下面比較常用的有兩個桌面系統(tǒng),gnome和kde,這都無所謂,他們其實都是架在X系統(tǒng)之上的。簡單的說X系統(tǒng)就是一個最核心,也 是最底層的桌面系統(tǒng),gnome也好,kde也罷,或者其他的什么fvwm之類的,都只不過是X系統(tǒng)和用戶之間的另一層軟件而已。所以要想達到不管使用什 么桌面系統(tǒng),都能調(diào)入輸入法,就是要在X系統(tǒng)啟動的時候,讓輸入法也啟動起來,那么這樣之后,無論你使用的是gnome還是kde或者其他什么桌面,都能 夠調(diào)入輸入法。因為當(dāng)輪到他們啟動的時候,X系統(tǒng)已經(jīng)啟動好了,輸入法已經(jīng)被系統(tǒng)調(diào)入了。那么X系統(tǒng)又是如何啟動的呢?讓我們從startx開始說起。
無論你用什么桌面系統(tǒng),都是通過startx啟動的,那么startx究竟是什么呢?一個應(yīng)用程序還是一個腳本文件?為什么它能夠啟動各種桌面系統(tǒng),并且能夠按照相應(yīng)的配置文件來設(shè)置呢?帶著疑問,我在console里面輸入whereis startx.
在 找到了存放startx的路徑以后,用編輯器打開它發(fā)現(xiàn)原來是一個腳本文件。這個腳本文件的內(nèi)容可能根據(jù)發(fā)行版不同,會有差異,如果你懂一些shell的 語言,那么你可以嘗試看看,不一定要全部看懂,但是你大致看過以后會發(fā)現(xiàn)最后有一個xinit的命令,然后跟著一些參數(shù)。我嘗試在console下面輸入 xinit(注意,不要在圖形界面下做此操作)
發(fā)現(xiàn)圖形界面啟動拉,但是很丑陋,什么功能都沒有,鼠標(biāo)可以動,還有一個可以輸入命令的小窗口。怎 么退出來?ctrl+alt+backspace. 原來如此,startx只是一個腳本,里面通過對一系列配置文件的分析設(shè)置,最終利用xinit命令啟動圖形界面。不管是kde還是gnome,都是在這 個腳本中完成的。那么讓我們再打開startx腳本看看里面還做了些什么。你仔細(xì)看看,會發(fā)現(xiàn)有一個東西很顯眼,就是/etc/X11/xinit /xinitrc,這個xinitrc好像很眼熟,在配置輸入法的其他貼中總是看到,這里出現(xiàn)了肯定是里面運行了這個腳本。再看其他的一些東西,其實都是利用shell配置出一個xinit啟動的參數(shù),用來配置桌面系統(tǒng)用的,不用管它。目前已知的就是startx的時候它會去執(zhí)行一個/etc/X11 /xinit/xinitrc的腳本,讓我們打開來看看里面有什么。
打開一看,其中一段我覺得最有價值,是一個for循環(huán),他依次執(zhí)行了/etc /X11/xinit/xinitrc.d/下面的所有腳本。你可以耐心的找一下,一定可以發(fā)現(xiàn)。那么這個目錄里面有些什么內(nèi)容呢?有一個文件看名字就知道和輸入相關(guān),他叫xinput。等等,讓我們理一下,是怎么從startx到xinput的。
首先是執(zhí)行startx這個腳本文件,里面他會執(zhí)行xinitrc這個腳本,然后xinitrc腳本里面的,叫xinput。OK, 我們繼續(xù),打開xinput看看。
4.安裝軟件包
rpm -Uvh scim-0.8.2-1.i586.rpm
rpm -Uvh scim-chinese-0.2.6-1.i586.rpm
5.修改配置文件
接下來重要的一步就是,修改一下
/etc /X11/xinit/xinitrc.d/xinput文件,讓SCIM在X啟動的時候也啟動。我看到網(wǎng)上很多文章也說過,但總是不得要領(lǐng),經(jīng)過自己試 驗,最簡單的就是把xinput文件里的Chinput全部替換為SCIM,chinput替換為scim,保存重啟X就可以了。
zh_CN*)
if [ -e /usr/bin/scim ]; then
XIM="SCIM"
elif [ -e /usr/X11R6/bin/xcin ] ; then
export LC_CTYPE=zh_CN.GB2312
XIM="xcin-zh_CN.GB2312"
fi
;;
..............................
SCIM)
XIM_PROGRAM=scim
XIM_ARGS="-d"
;;
然后修改/etc/gtk-2.0/gtk.immodules,找到這一行:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:zh"
改為:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:zh"
可能表示輸入英文時也使用該輸入法
安裝完畢后運行scim-setup,將輸入法的切換鍵改為ctrl+space
=============================================================
yum常用命令總結(jié)
主要功能是更方便的添加/刪除/更新RPM包.
它能自動解決包的倚賴性問題.
它能便于管理大量系統(tǒng)的更新問題
一、yum list|more 列出所有包文件,可搭配grep查詢軟件包,如yum list |grep kernel
二、yum info xxx 顯示包xxx詳細(xì)信息,即使xxx沒有安裝
三、yum update kernel 用yum升級內(nèi)核
四、yum update 全面升級系統(tǒng)
五、yum list available 列出升級源上所有可以安裝的包(List all packages in the yum repositories available to be installed.)
六、yum list updates 列出升級源上所有可以更新的包(List all packages with updates available in the yum repositories.)
七、yum list installed 列出已經(jīng)安裝的包
八、yum install xxx 安裝xxx包
九、yum update xxx 升級xxx包
十、yum remove xxx 刪除xxx包
以上就是本文的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
虛擬機克隆linux centos6.5系統(tǒng)網(wǎng)卡配置圖文教程
這篇文章主要為大家詳細(xì)介紹了虛擬機克隆linux centos6.5系統(tǒng)網(wǎng)卡配置的圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09centos6.8下hadoop3.1.1完全分布式安裝指南(推薦)
這篇文章主要介紹了centos6.8下hadoop3.1.1完全分布式安裝指南,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11Linux 服務(wù)器同步 Rsync同步服務(wù)器文件
服務(wù)器之間常常要保持些文件或目錄的一致,比如一些大的軟件下載網(wǎng)站,它們通常使用多臺服 務(wù)器來提供下載服務(wù)。2009-08-08解決Nginx + PHP(FastCGI)遇到的502 Bad Gateway錯誤
昨日,有朋友問我,他將Web服務(wù)器換成Nginx 0.6.31 + PHP 4.4.7(FastCGI)后,有時候訪問會出現(xiàn)“502 Bad Gateway”錯誤,如何解決。2008-12-12關(guān)于Linux操作系統(tǒng)下終端亂碼的完美解決方法
下面小編就為大家?guī)硪黄P(guān)于Linux操作系統(tǒng)下終端亂碼的完美解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10