yum Yellowdog Uupdate Modifier
yum 屬於C/S架構,從yum倉庫中獲取所需的軟件包。yum倉庫中存儲兩類數據。軟件包自己和包的元數據。數據就是各個rpm包自己。元數據包括:包名,版本信息,各包所包含的文件列表,包之間的依賴關係,包分組信息
centos5 使用的xml來保存這元數據,而centos6以上使用一個關係型數據庫sqlite保存元數據。
yum安裝軟件請求過程
第一步:獲取元數據,緩存於本地。/var/cache/yum
第二步:yum客戶端程序在本地分析元數據文件,並結合本地系統環境(查看本地都安裝了那些包)獲取依賴關係。而後分析須要那些依賴的程序包
第三步:根據分析的結果,聯繫yum倉庫下載各個程序包後,一併安裝。
第四步:刪除下載的數據包,以釋放空間。
yum經常使用倉庫種類。
base庫一般爲發行版光盤中所提供的程序包
updates庫 最新的軟件更新包。
epel庫是fedora的倉庫php
推薦地址:http://mirrors.ustc.edu.cn/fedora/epel/
nginx
優先級爲,base , updates, epel
extra庫,其它不經常使用的包
使用yum機制
1,確保有yum repo可用,經常使用的網絡源有搜狐 http://mirrors.sohu.com 網易http://mirrors.163.com 。 rpm包的文件服務器上repodata目錄的父目錄即是可用的倉庫
rpm訪問時使用的協議有ftp,http,nfs,文件協議(file:///)
2,yum客戶端
提供repo配置文件,主配置文件在/etc/yum.conf。,yum倉庫配置文件在/etc/yum.repo.d/*.repo
yum倉庫配置格式
[REPOID] yum的ID
name=倉庫描述
baseurl=file:///mnt/cdrom 這裏指定yum源的路徑
enable={0|1}若是不定義,默認爲啓用些配置文件
gpgcheck={0|1}1表示檢測0爲不檢測
gpgkey=url #指定key文件的位置
mirrorlist=url to a file#這個文件中有多個鏡像列表
cost=1000#若是指定了多個倉庫,指定一個訪問的開銷。範圍1-1000,默認爲1000
yum 客戶端命令的子命令
repolist {enable|disabled|all} 列出可用的repo倉庫名
list {all|installed|avail} 列出倉庫中的軟件包,all所有,installed已安裝的,available爲能夠安裝的
示例:yum list php* 這句命令能夠顯示已經安裝與可安裝的包
info 軟件包名稱:查看軟件包的描述信息,不管安裝過與未安裝過的包都會顯示
grouplist 顯示軟件包組信息。
groupinfo 「包組名」 :顯示包組屬性信息,包組名要用隱號隱起來
clean all 清理緩存
install 安裝程序包,後面跟上軟件包名。
yum install <包的絕對路徑> 這種方法能夠安裝不屬於倉庫中的軟件包,但會解決依賴關係。前師是倉庫中有此包所需的包。適用centos6。 sql
示例:yum install /media/Packages/pdf-tools-0.29a-2.1.el6.noarch.rpm數據庫
groupinstall 安裝包組,後面要跟上包組名,包組要用雙隱號隱起來
reinstall 從新安裝軟件包,後面跟上軟件包名。
update 升級軟件包,後面跟上要升級的軟件包名。
能夠直接跟上軟件包的名稱和版本號,直接升級到指定版本。
downgrade 降級軟件版本,後面跟上指定的軟件版
remove 卸載軟件包,若是其它軟件包依賴此軟件包,其它軟件包也會被卸載
erase 卸載軟件包
whatprovides 查詢某個文件由那個軟件包生成的
provides 同上
groupremove 卸載包組,包組要用雙隱號隱起來
check-update 檢查可用的升級包。
yum倉庫建倉
前題須要一個文件共享服務器,把rpm包放在文件服務器上的一個目錄下,並用createrepo命令建立yum庫。而後把客戶端向此yum源
把rpm包都複製到文件服務的目錄裏,而後須要安裝createrepo命令的軟件包,
centos
#yum install createrepo-0.9.9-18.el6.noarch.rpm #createrepo /data/yum/
配置客戶端使用此倉庫就能夠了緩存
[test] name=test baseurl= #由於80端口httpd佔用了,而服務器上用的是nginx,改成8000了 enable=1 gpgcheck=1 gpgkey=http://127.0.0.0:8000/yum/RPM-GPG-KEY-CentOS-6
fedora的yum源配置文件,全部系統都適用bash
[epel] name=CentOS-$releasever - EPEL #baseurl=http://mirrors.ustc.edu.cn/fedora/epel/$releasever/$arch/ baseurl=http://mirrors.ustc.edu.cn/fedora/epel/$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6