1.yum是什么
yum : Yellow dog Updater, Modified
主要功能是更方便的添加/刪除/更新RPM包.
它能自動(dòng)解決包的倚賴性問題.
它能便于管理大量系統(tǒng)的更新問題
yum特點(diǎn)
可以同時(shí)配置多個(gè)資源庫(Repository)
簡潔的配置文件(/etc/yum.conf
自動(dòng)解決增加或刪除rpm包時(shí)遇到的倚賴性問題
使用方便
保持與RPM數(shù)據(jù)庫的一致性
yum安裝
RHEL3,和 RHEL4 系列可以使用 CentOS 提供的 yum RPM 包進(jìn)行安裝。
RHEL5 默認(rèn)安裝YUM,直接可以使用
CentOS 默認(rèn)安裝YUM,直接可以使用
Fedora 默認(rèn)安裝YUM,直接可以使用
2. 安裝和更新以及卸載
安裝
yum install PACKAGE_NAME ...
-y: 自動(dòng)回答為yes
如果需要安裝指定的版本的程序:
yum install PACKAGE-VERSION ...
重新安裝指定的程序包:
yum reinstall PACKAGE_NAME ...
舉例:
[root@localhost ~]# yum -y install creatrepo
升級(jí)
yum update PACKAGE_NAME
如果有多個(gè)版本的升級(jí)包可用,且僅期望升級(jí)到指定版本:
yum update PACKAGE-VERSION
降級(jí):
yum downgrade PACKAGE_NAME
檢查可用升級(jí):
yum check-update
舉例:
[root@localhost ~]# yum update createrepo
卸載
yum erase|remove PACKAGE_NAME
注意:依賴于該指定程序包的其它包,會(huì)被一并卸載
舉例:
[root@localhost ~]# yum remove createrepo
3. Yum 常用指令使用詳解
第一次使用yum或yum資源庫有更新時(shí),yum會(huì)自動(dòng)下載所有所需的包索引文件放置于/var/cache/yum目錄下,所需時(shí)間可能較長.
rpm包的更新 相關(guān)指令
檢查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大規(guī)模的版本升級(jí),與yum update不同的是,連舊的淘汰的包也升級(jí)
#yum upgrade
rpm包的安裝和刪除 相關(guān)指令
安裝rpm包,如xmms-mp3
#yum install xmms-mp3
刪除rpm包,包括與該包有倚賴性的包
#yum remove xmms-mp3
或者
yum erase xmms-mp3
(高版本)
yum緩存(/var/cache/yum/)相關(guān)參數(shù)
清除緩存中rpm包文件
#yum clean packages
清除緩存中rpm頭文件
#yum clearn headers
清除緩存中所有相關(guān)信息
#yum clearn all
rpm包信息和列表查詢 相關(guān)指令
列出資源庫中所有可以安裝或更新的rpm包
#yum list
列出資源庫中特定的可以安裝或更新以及已經(jīng)安裝的rpm包
#yum list glibc
#yum list glibc*
列出資源庫中所有可以更新的rpm包
#yum list updates
列出已經(jīng)安裝的所有的rpm包
#yum list installed
列出已經(jīng)安裝的但是不包含在資源庫中的rpm包(通過其它網(wǎng)站下載安裝的rpm包)
#yum list extras
列出資源庫中所有可以安裝或更新的rpm包的信息
#yum info
列出資源庫中特定的可以安裝或更新以及已經(jīng)安裝的rpm包的信息
#yum info glibc
#yum info glibc*
列出資源庫中所有可以更新的rpm包的信息
#yum info updates
列出已經(jīng)安裝的所有的rpm包的信息
#yum info installed
列出已經(jīng)安裝的但是不包含在資源庫中的rpm包的信息(通過其它網(wǎng)站下載安裝的rpm包的信息)
#yum info extras
搜索rpm包 相關(guān)指令
搜索匹配特定字符的rpm包(在rpm包名,包描述等中搜索)
#yum search glibc
搜索包列表文件包含 realplay 的 軟件包
#yum provides realplay
yum命令還可用安裝本地rpm包文件
yum localinstall /path/to/rpm_package_file ...
安裝本地rpm包
選項(xiàng):
--enablerepo=啟用某yum倉庫
--disablerepo=禁用某yum倉庫
注意:優(yōu)先級(jí)高于/etc/yum.repos.d/*.repo配置文件中定義的屬性;
-y: 自動(dòng)回答為yes
--nogpgcheck:不驗(yàn)證包的來源和完整性
舉例:
[root@localhost ~]# yum -y localinstall /tmp/repos/glibc-common-2.6.32-358.el6.i386.rpm
4.Yum 軟件倉庫搭建方法
如果管理大量的服務(wù)器,rpm軟件包的安裝和更新,都需要訪問連接Internet,這樣會(huì)導(dǎo)致安裝軟件包的速度會(huì)很慢,而且會(huì)浪費(fèi)帶寬. 為了避免上述情況的弊端,我們可以通過自己創(chuàng)建本地的repository(倉庫)的方法來實(shí)現(xiàn)軟件包的快速安裝和更新.
倉庫服務(wù)器端創(chuàng)建,將DVD或者CD發(fā)行版中的所有數(shù)據(jù)拷貝到服務(wù)器上(以centos 5 為例)
創(chuàng)建倉庫目錄
mkdir /yum
掛載安裝介質(zhì)盤
mount -o loop /download/centos5.iso /mnt
復(fù)制光盤內(nèi)容到/yum目錄中
cp /mnt/* /yum
創(chuàng)建repository的軟件包的索引文件(需要安裝 createrepo 軟件包)
cd /yum
createrepo -g repodata/comps.xml .
(.代表當(dāng)前目錄)
配置apache服務(wù)器,將DocumentRoot 指向 /yum 目錄,可以列出目錄內(nèi)容即可(示例配置)。
DocumentRoot "/yum"
Directory "/yum">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
/Directory>
啟動(dòng)apache,測試訪問正常,服務(wù)器端設(shè)置完成
客戶端設(shè)置,修改 yum 配置文件(假設(shè)服務(wù)器ip = 192.168.0.1)
修改配置文件內(nèi)容/etc/yum.repos.d/centos-server.repo 內(nèi)容如下
#cat /etc/yum.repos.d/centos-server.repo
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=20
obsoletes=1
gpgcheck=0
[centos5]
name=centos5 - Base
baseurl=http://192.168.0.1/
gpgcheck=0
刪除/etc/yum.repos.d/ 目錄中 其他 .repo 文件(不使用其他的軟件倉庫)
經(jīng)過如上配置后,就可以使用自己建立的倉庫,進(jìn)行軟件包的安裝和更新. 如果你需要建立很多發(fā)行版本的倉庫,可以按照不同目錄劃分進(jìn)行,參考如下目錄結(jié)構(gòu)
/yum
|-- rh35-x86-32
| |-- headers
| `-- repodata
|-- rh36-x86-32
| |-- headers
| `-- repodata
|-- rh36-x86-64
| |-- headers
| `-- repodata
|-- rh38-x86-32
| |-- headers
| `-- repodata
|-- rh38-x86-64
| |-- headers
| `-- repodata
|-- rh39-x86-32
| |-- headers
| `-- repodata
|-- rh42-x86-32
| `-- repodata
|-- rh43-x86-32
| `-- repodata
|-- rh44-x86-32
| `-- repodata
|-- rh44-x86-64
| `-- repodata
|-- rh45-x86-64
|-- rh46-x86-32
| `-- repodata
|-- rh46-x86-64
| `-- repodata
|-- rh47-x86-64
| `-- repodata
|-- rh48-x86-32
| `-- repodata
|-- rh48-x86-64
| `-- repodata
|-- rh50-x86-32
| `-- repodata
|-- rh50-x86-64
| `-- repodata
|-- rh52-x86-32
| `-- repodata
|-- rh52-x86-64
| `-- repodata
|-- rh53-x86-32
| `-- repodata
|-- rh53-x86-64
| `-- repodata
|-- rh54-x86-64
| `-- repodata
`-- update
|-- rhel3-x86-32
| |-- headers
| `-- repodata
|-- rhel3-x86-64
| |-- headers
| `-- repodata
|-- rhel4-x86-32
| `-- repodata
|-- rhel4-x86-64
| `-- repodata
|-- rhel5-x86-32
| `-- repodata
|-- rhel5-x86-64
`-- repodata
然后根據(jù)需要,設(shè)置客戶端的yum配置文件,即可使用不同的發(fā)行版本軟件倉庫!