YUM: Yellowdog Update Modifier,rpm的前端程序,可解決軟件包相關依賴性,可在多個庫之間定位軟件包,up2date 的替代工具。
yum repository:(yum資源庫) 以.repo結尾的yum庫文件中存儲了衆多rpm包,以及包的相關的元數據文件(放置於特定目錄repodata下)
yum庫文件中支持的文件的服務器:
http:// (外部網站的rpm包地址)
https:// (外部網站的rpm包地址)
ftp:// (內部網的共享rpm包地址)
file:// (本機上存儲的rpm包地址)前端
/etc/yum.conf:爲全部倉庫提供公共配置
/etc/yum.repos.d/*.repo:爲倉庫的指向提供配置
下面咱們來看看這兩個文件:
cachedir :指定緩存目錄
logfile : 日誌文件
gpgcheck : 是否查包的合法性
[repositoryID] (標題,這個庫的id,至關於×××號,不可重複)
name=Some name for this repository (庫名字,名字能夠重複)
baseurl=url://path/to/repository/ (指定rpm包的路徑)
enabled={1|0} (是否有效0表示這個repo無效,1表示有效,默認值爲1)
gpgcheck={1|0} (是否檢驗包的合法性默認爲1)
gpgkey=URL (公鑰路徑)
enablegroups={1|0} (是否開啓組功能)
failovermethod={roundrobin|priority} (一個源是能夠跟多個地址(baseurl)的,此選項是設置多個地址的使用順序的)
roundrobin:意爲隨機挑選,默認值
priority:按順序訪問
cost= 默認爲1000(優先級)centos
$releasever: 當前OS的發行版的主版本號
$arch: 平臺,i386,i486,i586,x86_64等
$basearch:基礎平臺;i386, x86_64
$YUM0-$YUM9:自定義變量
例如:
http://server/centos/$releasever/$basearch/
若是當前服務器是centos7版本x86_64平臺的
則實際網址爲http://server/centos/7/x86_64
若是當前服務器是centos6版本i384平臺的
則實際網址爲http://server/centos/6/i384緩存
yum源路徑指定的不是包含軟件包的那個目錄,而是指定在包含有repodata的目錄的上一級目錄
阿里雲repo文件:http://mirrors.aliyun.com/repo/
CentOS系統的yum源
阿里雲: https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
教學環境: http://172.16.0.1/cobbler/ks_mirror/$releasever/
EPEL的yum源:
阿里雲: https://mirrors.aliyun.com/epel/$releasever/x86_64
教學環境: http://172.16.0.1/fedora-epel/$releasever/x86_64/服務器
yum [options] [command] [package ...]
yum的命令行選項:
-y: 自動回答爲「yes」,避免交互式
-q:靜默模式(可是仍會顯示安裝的過程,完全靜默建議使用yum -y install pkg1 &> /dev/null,把結果扔進垃圾桶)
--nogpgcheck:臨時不進行gpg check(不檢驗包的合法性)
--disablerepo=repoidglob:臨時禁用此處指定的repo
--enablerepo=repoidglob:臨時啓用此處指定的repo
--noplugins:禁用全部插件ide
yum repolist [all|enabled|disabled]
all 顯示所有repo
enabled 只顯示生效的repo
disabled 只顯示無效的repo工具
yum list [all] 顯示全部的程序包
yum list available 顯示全部可用的,且未安裝的
yum list installed 顯示全部已安裝的包
yum list updates 顯示可更新的包網站
yum install package1(包名) [package2]…
安裝軟件包,能夠同時跟多個包名,安裝多個包
yum reinstall package1 [package2]
從新安裝一個或多個已安裝的包this
yum update [pkg1] [pkg2] (升級安裝)(後跟多個包名可升級多個包)
yum downgrade pkkg1 [pkg2] (降級安裝)阿里雲
yum check-updateurl
yum remove 包名1 [包名3]… 刪除程序包(後跟多個包名可同時刪除多個包)
yum erase 包名1 [包名2]… 卸載程序包
yum info pkg 顯示包的詳細信息
yum provides 文件路徑(支持文件名通配符) 查詢一個文件來自哪個rpm安裝包(不論這個包是否已安裝)
yum whatprovides 文件路徑(支持文件名通配符) 查詢一個文件來自於哪個rpm安裝包(不論這個包是否已安裝)
yum clean all 清空全部緩存
yum makecache
yum search str1 [str2] (str表明關鍵字文本)
yum deplist pkg1 [pkg2]…
yum history 顯示yum的歷史操做
yum history info # 詳細顯示某條歷史記錄
yum history undo # 撤銷某條yum的操做
yum history redo # 從新執行一遍某條yum的操做
yum localinstall |install rpm路徑 安裝本地的rpm包,並用yum解決依賴性關係
yum localupdate |update rpm路徑 更新本地的rpm包,並用yum解決依賴性關係
yum groupinstall grppkg1 安裝該包組(grppkg1)
yum grouplist 列出全部的包組
yum groupinfo grppkg1 顯示該包組包含的rpm包
yum groupremove grppkg1 卸載包組
爲何yum能幫咱們解決一些依賴性關係呢?實際上是由於在yum倉庫下有一個repodata的目錄,而在這個目錄下就保存着各個包的信息及其依賴性關係,因此yum倉庫指定的位置必須指定在有repodata目錄的上一層目錄,而若是想本身建立一個yum倉庫,除了在該目錄下拷貝一些包之外還須要自動建立一個repodata的目錄。createrepo這個命令就會幫助咱們自動搜索該目錄下的全部包及依賴性關係,並建立repodata目錄將其保存在該目錄下語法格式以下:
createrepo 倉庫路徑(存放着rpm包的路徑)
建立一個yum倉庫的步驟:
提示:在centOS6中默認createrepo命令是沒有安裝的,因此可能會出錯,想要安裝createrepo命令能夠用如下步驟哦:
一、yum list createrepo 查詢yum倉庫裏是否有createrepo的包
查出createrepo命令的安裝包名爲createrepo.noarch
二、yum install createrepo.noarch 安裝createrepo安裝包
安裝成功
三、若是全部的rpm安裝包都在/dvd目錄下,想要將此目錄設置成一個yum倉庫來使用,如何使用createrepo命令來建立repodata目錄?
如此這個/dvd目錄就能夠在yum倉庫的配置文件中使用了