yum源配置和yum 使用總結


yum 源配置:


centos中yum客戶端配置:

yum客戶端的其中一個配置文件是/etc/yum.repos.d/*.repo ,其中這一文件中一個*.repo文件就是一個yum源。

yum.repo文件內容結構。

[yumtest] #YUM源標籤,與其他YUM源標籤不同即可
nameserver=Servername #YUM源名稱,與其他YUM源名稱不同即可
baseurl=[ftp://*** | http://** | file://***] #指定YUM源
enabled=1 #是否可用
gpgcheck=1 #是否進行數字簽名檢查,以防安裝了被篡改的軟件包,1爲檢查,0爲不檢查。
gpgkey=file///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #指定RED Hat 發行的數字簽名公鑰文件。

添加YUM源時只要新建一個這樣的文件,並加以配置就可以了。後兩項,可以用gpgcheck=0代替。

以下配置文件只要保持
/etc/yum.conf

PS:不能聯網,但是安裝光盤中有所有安裝包的情況:
注意 /etc/yum.repos.d/CentOS-Media.repo

# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
# CentOS-5. 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=c5-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c5-media [command]
[c5-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/ ####這一行最重要

gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta

可以在baseurl=file:///media/CentOS/ 後添加正確的光盤掛載在系統中的位置,如果是平常是file:///media/CentOS/Server等。

然後你就可以在掛載光盤後,通過以下命令安裝軟件

yum --disablerepo=\* --enablerepo=c5-media install [軟件包]

(只有在普通yum命令後加上“ --disablerepo=\* --enablerepo=c5-media ”即可,如: yum --enablerepo=c5-media remofe 軟件包)


---------------------使用總結-----------------------------------------

yum使用總結

yum [options] [command] [package ...] 


[功能] 

center os下面的軟件包管理工具。 


[描述] 

yum是一個基於rpm的交互的軟件包管理工具。 

1,常用的command(子命令)簡介

install package1 [package2] [...] 

安裝最新版本的軟件包或 者一組軟件包,同時確保滿足依賴關係。如果沒有和指定名稱匹配的軟件包,那麼會視爲shell的一個部分並且將任何的匹配安裝上去。如果名字以@開始,那 麼後面的名字就直接像是傳遞給了groupinstall。如果名字是一個文件,那麼工作的方式就類似localinstall,注意可以指定統配符號以 及文件列表。(具體參見man手冊) 


update [package1] [package2] [...] 

如果運行的時候,沒指定任何package,那麼update子命令將會更新當前所有被安裝的軟件包,否則會更新列出的軟件包。更新的時候,yum要保證所有的依賴關係被滿足,如果指定的軟件包當前沒有被安裝,那麼update不會安裝它們。 


upgrade [package1] [package2] [...] 

這個命令和使用了--obsoletes的update命令一樣。 


list [...] 

列出可用軟件包的各種信息。 


remove | erase package1 [package2] [...] 

用來從系統卸載軟件包,並且根據被卸載的軟件包,卸載其他相關的軟件包。命令格式類似install。 


groupinfo 

用於給出一個組的描述以及軟件包列表。如果加上-v選項,那麼會輸出已經安裝和可用的類似list命令的軟件包的名稱。 


groupupdate 

當軟件包X已經被安裝的情況下,"yum update X"和"yum install X"所做的工作一樣。 


groupinstall 

用來安裝一個組中的指定類型的所有的獨立的軟件(這個工作的方式類似於你把這些軟件包的名字放到"yum install"命令中進行運行).配置選項group_package_types指定了需要安裝什麼類型。 


groupremove 

用來將一個組中的所有軟 件包刪除,和"groupinstall"不一樣,這個將會忽略group_package_types,並且將所有的內容移走。如有必要,應該指出軟件 包可以在多個組中,這樣跟在"groupremove Y"後面的"groupinstall X Y"不會給你一個和"groupinstall X"一樣的執行結果。 


clean [ packages | headers | metadata | dbcache | all ] 

用來清除隨着時間逐漸增多的yum目錄緩存中的內容。這個命令還有更多的選項。 


makecache 

用於從當前激活的yum軟件倉庫中下載可用的元數據(元數據在安裝軟件的時候會被用來,應該包含了軟件包的下載位置等)。 


localinstall rpmfile1 [rpmfile2] [...] 

用於安裝一系列本地的 rpm文件,如果需要,那麼被激活的repositories將會用來解決一些依賴。注意給定名字之後,安裝的命令會做一些本地的安裝。注意有時我們安裝 的時候會提示簽名,否則不讓安裝,那麼我們可以指定"--nogpgcheck"選項,這樣就不用簽名了。 


search string1 [string2] [...] 

用來通過一個部分的名字尋找一個軟件包,其中這個軟件rpm的描述,概要或者軟件包名稱中包含傳入的string字符串。 



2,常用的command選項

下面大多數的命令項可以通過配置文件(例如yum.conf)進行設置,並且也給出了使用配置文件設置時候的配置選項。 

-y 假設爲yes.假設所有的問題的回答都是yes。配置的選項:assumeyes. 

-c [config file] 指定配置文件的位置,可以是http,ftp的url,或者是本地的文件路徑。 

--installroot=root 指定一個可選的安裝路徑,所有的軟件包都是基於這個路徑被安裝的。配置的選項爲:installroot. 

--enablerepo=repoidglob 激活特定的,通過id或者glob指定的,但是在配置文件中使用enable=0選項被禁止了的軟件倉庫。配置的選項爲:enabled. 

--disablerepo=repoidglob 禁止一個通過id或者glob指定的特定的軟件倉庫。配置的選項爲:enabled. 

-x, --exclude=package 通過指定名字,排除軟件倉庫中更新的軟件。配置的選項爲:exclude. 

--nogpgcheck 運行的時候,不進行gpg簽名檢查。配置選項爲:gpgcheck. 

--noplugins 運行的時候不使用插件。配置的選項爲:plugins. 



3,一些子命令的常用選項

1)list命令的選項: 

下面的項指定了install命令的運行方式。注意這裏的list出來的信息包含了軟件包的版本信息。 

yum list [all | glob_exp1] [glob_exp2] [...] 

列出所可用的和安裝的軟件包。 


yum list available [glob_exp1] [...] 

列出所yum倉庫中可以被安裝的軟件包。 


yum list updates [glob_exp1] [...] 

列出所yum倉庫中可以被更新的軟件包。 


yum list installed [glob_exp1] [...] 

List the packages specified by args.  If an argument does not match the name of an  avail- 

able package, it is assumed to be a shell-style glob and any matches are printed. 

列出args指定的軟件包。如果參數沒有匹配一個可用的軟件包的名稱,那麼... 


yum list extras [glob_exp1] [...] 

列出系統中被安裝的,但是在yum配置文件倉庫中沒有列出的軟件包。 


yum list obsoletes [glob_exp1] [...] 

列出系統中已經安裝的,在配置文件中的yum倉庫列表被廢棄的軟件包。 


yum list recent 

列出最近添加到倉庫中的軟件包。 


2)clean命令的選項: 

下面指定你的clean命令的運行方式。這裏命令中的“所有文件”實際就是當前被激活的軟件倉庫中的所有文件。如果你臨時想要清除其他非激活的軟件倉庫中的內容,那麼使用 --enablerepo='*'選項。 

yum clean expire-cache 

當元數據和每個軟件倉庫中的鏡像列表下載的時候,刪除本地的數據。也就是說,yum將會爲每一個軟件倉庫刷新緩存。下次會使用到。但是如果緩存的數據仍然有用,那麼不會刪除任何重要的數據。 


yum clean packages 

從系統中刪除任何緩存的軟件包。我們需要注意的是當我們下載軟件包之後,軟件包並不會被自動地刪除。 


yum clean headers 

刪除所的頭文件,這些頭文件用於yum解決軟件的以來關係。 


yum clean metadata 

刪除yum用於確定軟件包可用的一些文件(元數據文件)。使用這個選項會強制讓yum下次運行的時候下載所有的元數據。 


yum clean dbcache 

刪除sqlite緩存,這個緩存用來以很快的速度訪問原數據。使用這個選項將會使得yum在下次運行的時候重新創建緩存文件。 


yum clean all 

刪除上面說過的所的內容。 


4,關於插件 

你可以通過插件來進行擴展。一個插件就是一個".py"的python腳本文件,這個文件會被安裝到一個通過yum.conf的pluginpath選項指定的目錄。如果想要一個插件工作,必須做如下的工作: 

1)插件模塊文件必須被安裝在插件的目錄(如前所述)。 

2)/etc/yum/yum.conf中的全局插件選項必須被設置爲1。 

3)必須存在一個/etc/yum/pluginconf.d/.conf文件,並且這個文件中的enabled必須被設置。例如如下就是這樣的配置文件的一個非常簡單的例子: 

[main] 

enabled = 1 

可以通過"man 5 yum.conf"查看關於插件配置選項更多的信息。 


5,配置文件

yum使用/etc/yum/yum.conf配置文件。可以通過指定reposdir選項(默認值爲/etc/yum/repos.d),讀取其目錄中的其他配置文件。具體參見man手冊中的詳細內容。 

在yum配置文件中有兩個類型的節:main和repository。Main定義的是全局的配置選項。一個時刻只能有一個main節。repository節定義了每個repository/server的配置選項,可能會有多個repository節。 

1)main節: 

具體關於main節所支持的選項參數可以參見"man yum.conf"中的手冊說明。 

下面是一個main的簡單例子: 

############文件來自/etc/yum.conf############## 

[main] 

#yum的緩存和數據庫文件的存放路徑,默認爲"/var/cache/yum" 

cachedir=/var/cache/yum 

#是否在成功安裝之後保持頭和軟件包的緩存。默認爲1,表示保持。 

keepcache=0 

#yum的日誌文件的完整路徑 

logfile=/var/log/yum.log 

#對於軟件包yum是否在命令行上面提示錯誤,例如已經安裝一個安裝的軟件。默認爲0。 

tolerant=1 

#表示是否對軟件包進行簽名驗證,默認爲0。 

gpgcheck=1 

#是否使用插件,默認爲0即不使用。 

plugins=1 

#yum使用的代理服務器,可以爲proxy。 

Proxy=http://:@: 

############文件來自/etc/yum.conf############## 


2)repository節: 

repository節的內容形式如下: 

Example: [repositoryid] 

name=Some name for this repository 

baseurl=url://path/to/repository/ 

這裏, 

repositoryid是一個單詞,唯一的名字,表示每個軟件倉庫。 

name是一個描述軟件倉庫的字符串。 

baseurl是一個目錄的URL,這個目錄包含相應的yum軟件倉庫中的數據。形式可以是"http://","ftp://",或者"file://",你也可以在一個baseurl中指定多個URL。類似如下: 

[repositoryid] 

name=Some name for this repository 

baseurl=url://server1/path/to/repository/ 

url://server2/path/to/repository/ 

url://server3/path/to/repository/ 

如果你在一個軟件倉庫上 列舉出來多餘"baseurl=",那麼你將會發現yum會忽略前面的,並且表現很奇怪。你可以在baseurl行給服務器追 加"user:password@"前綴使用包含權限的http。例 如:"baseurl=http://user:[email protected]/" 

具體關於repository節所支持的選項參數可以參見"man yum.conf"中的手冊說明。 

下面是兩個repository的簡單例子: 

############文件來自/etc/yum.repos.d/CentOS-Base.repo############## 

#additional packages that may be useful 

[extras] 

name=CentOS-$releasever - Extras 

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras 

baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ 

gpgcheck=1 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 


#additional packages that extend functionality of existing packages 

[centosplus] 

name=CentOS-$releasever - Plus 

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus 

#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ 

gpgcheck=1 

enabled=0 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 

############文件來自/etc/yum.repos.d/CentOS-Base.repo############## 


另外,yum的配置文件還支持include和默認的一些環境變量,具體參見"man yum.conf"手冊的輸出。 


[舉例] 

這裏,給出常用的一些命令。 

*列出所有可用的和安裝的軟件包: 

#yum list 


*列出所有安裝的軟件包: 

#yum list installed 


*列出所有安裝的軟件包不使用插件: 

#yum list installed --noplugins 

這裏,時使用插件會感覺很慢,這個時候可以使用--noplugins表示運行yum的時候不運行插件。 


*列出所有可以被更新的軟件包: 

#yum list updates 


*查找包含"meld"的軟件軟件包: 

# yum search meld 

輸入之後,輸出可能會包含如下信息: 

...省略前面... 

Trying other mirror. 

http://mirror01.idc.hinet.net/CentOS/5.6/updates/i386/repodata/repomd.xml: [Errno 14] HTTP Error 407: authenticationrequired 

Trying other mirror. 

http://mirrors.ta139.com/centos/5.6/updates/i386/repodata/repomd.xml: [Errno 14] HTTP Error 407: authenticationrequired 

Trying other mirror. 

================================================== Matched: meld =================================================== 

meld.noarch : Graphical visual diff and merge tool 

這裏,搜索完了之後,就可以使用"yum install meld.noarch"來進行安裝了。 


*安裝一個軟件: 

#yum install meld.noarch 

這樣,會安裝軟件倉庫裏面的meld.noarch軟件。 


*使用yum安裝本地的一個軟件: 

# yum localinstall mind-2.1-1.i386.rpm --noplugin --nogpgcheck 

或# yum install mind-2.1-1.i386.rpm --nogpgcheck --noplugin 

這裏,注意使用 --noplugin是爲了運行yum的時候不加載歐額外插件,這樣會快一些;另外,如果安裝的時候提示沒有gpg簽名就無法安裝這個rpm文件,這個時 候使用--nogpgcheck選項就行了。安裝之後,可以使用"yum list installed |grep mind"查詢到剛剛安裝的軟件,輸出類似如下: 

mind.i386                                      2.1-1                   installed 

使用"rpm -qa |grep mind"也能夠查詢到。另外,使用install的時候如果直接指定文件名稱,也會安裝,效果和localinstall類似。安裝的時候會自動根據軟件倉庫解決依賴關係的。 


*升級一個軟件: 

#yum update mind-2.1-2.i386.rpm --noplugin --nogpgcheck 

這裏,使用文件名稱也會升級本地的軟件。本地個rpm文件包。升級實際就是先卸掉原來的軟件再安裝新的。 


*卸載一個軟件: 

#yum remove mind.i386 

這樣會卸載軟件。 


[其它] 

yum與rpm的區別: 

YUM是從軟件倉庫自動下載,自動安裝,自動配置的。 

RPM是要你自己下載軟件包以及相關的包,之後再依次用rpm命令裝完各個包。 


參考資料: 

"man yum" 

"man 5 yum.conf"










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章