yum概述
yum是Yellow dog Updater, Modified 的簡稱,使用yum安裝軟件包需要為系統配置yum源(yum repository),可以使用http站點、ftp站點或本地鏡像文件作為yum源,允許為系統配置多個yum源。
yum通過分析rpm軟件包header信息自動解決軟件包安裝、升級或卸載過程中軟件包依賴性問題
、 CentOS默認安裝的yum軟件包: yum-3.4.3-161.el7.centos.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-plugin-fastestmirror-1.1.31-50.el7.noarch
yum 配置文件分為兩部分:main部分和repository部分
- main 部分位於/etc/yum.conf中,定義yum全局配置。
- repository 部分位於/etc/yum.repo.d 目錄下,定義各yum源的自定義配置,通常包含:在線yum源配置文件 /etc/yum.repos.d/CentOS-Base.repo和本地yum源配置文件 CentOS-Media.repo
main部分:/etc/yum.conf 配置文件默認內容如下(CentOS 7.6)
[main] cachedir=/var/cache/yum/$basearch/$releasever #yum緩存目錄,用於緩存rpm包及yum數據庫 keepcache=0 #是否開啟yum緩存,默認為0,不開啟緩存。1表示緩存使用yum命令安裝rpm軟件包 debuglevel=2 #Debug 信息輸出等級 logfile=/var/log/yum.log #yum日志文件位置 exactarch=1 #1表示yum只安裝與系統架構匹配的軟件包,默認為1 obsoletes=1 #一個update 的參數,1表示允許更新陳舊的RPM包,默認為1 gpgcheck=1 #是否進行gpg(GNU Private Guard)校驗,以確定rpm 包的來源是有效和安全的。0表示不進行校驗,1表示校驗 #在main中設置此參數對每個yum repository都有效。 plugins=1 #是否啟用插件,默認1為啟用,0表示不啟用,一般會使用用yum-fastestmirror插件 installonly_limit=5 #允許保留多少個內核包 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
repository 部分:yum源配置文件/etc/yum.repo.d/*,/etc/yum.repos.d/CentOS-Base.repo配置文件默認內容如下(CentOS 7.6)
[base] #yum源名稱,格式:[字母、數字] name=CentOS-$releasever - Base #yum源描述 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 #是否進行gpg(GNU Private Guard)校驗,以確定rpm 包的來源是有效和安全的,0表示不進行校驗,1表示校驗。 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #用於gpg校驗的key文件位置
baseurl 參數可以為“ftp://” 、“ http://” 或 “file://”,file指定本地文件路徑,其格式為baseurl=file:///mnt/cdrom,會出現連續三個" / ",最后一根表示根。 exclude 排除某些軟件在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對於安裝了諸如美化包,中文補丁的朋友特別有用。 pkgpolicy = newest 配置多個yum源時,同一軟件可能有不同版本,newest表示安裝最新版本,lastest表示舊版本
一、本地yum源配置.
配置本地yum源,可通過本地掛載鏡像文件(直接掛載iso文件或掛載iso文件所在設備)或局域網內HTTP站點、FTP站點匿名用戶、NFS共享目錄的方式共享下載的鏡像文件
鏡像掛載方式:
/dev/sr0 /mnt/cdrom iso9660 defaults 0 0 #/etc/fstab中掛載鏡像設備,iso文件做在設備/dev/sr0 /root/CentOS-7.iso /mnt/iso iso9660 defaults,loop 0 0 #/etc/fstab中掛載鏡像/root目錄下鏡像文件 172.24.184.31:/data /data nfs defaults,intr 0 0 #/etc/fstab中掛載NFS共享目錄,此處必須使用intr或soft參數
1、將/etc/yum.repos.d/目錄中文件備份后刪除
2、在/etc/yum.repos.d/目錄中,新建yum配置文件 mnt.repo(yum配置文件須以.repo后綴結尾,配置文件名盡量與yum源同名)
cat <<EOF>> mnt.repo [mnt] #括號中的名稱為yum源名稱,通常為字母和數字,必須填寫 name=mnt #對yum的描述 baseurl=file:///mnt/repo #路徑為鏡像掛載目錄,yum源url,注意路徑格式 gpgcheck=0 #gpgcheck表示安裝rpm包時,是否基於公私鑰對匹配包的安全信息,1表示開啟 0表示關閉,默認為驗證 enabled=1 #enabled表示當前倉庫是否開啟,1為開啟,0為關閉,此項不寫默認為開啟 EOF
二、在線yum源配置
在線yum源配置較簡單,既可使用系統已配置好的官方yum源,也是使用國內的阿里雲yum源或網易yum源等,通過下載在線yum源配置文件替換默認官方yum源配置文件即可實現在線yum源配置,也可直接修改yum源配置文件更改在線yum源。
1、備份並刪除/etc/yum.repos.d/CentOS-Base.repo在線yum源配置文件,將次文件后綴名.repo修改或在其中添加enabled=0即可使官方yum源失效。
2、現在在線yum配置文件,並放入/etc/yum.repos.d/目錄中。
阿里雲yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下載配置文件放到指定目錄中,並重命名
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下載配置文件放到指定目錄中,並重命名
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo #刪除僅能在阿里雲解析的域名
網易yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo #下載配置文件放到指定目錄中,並重命名
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo #下載配置文件放到指定目錄中,並重命名
三、清除並重新生成yum緩存,獲取新yum源的數據庫
yum clean all #(清除資源)
yum makecache #(獲取新yum源的數據庫)
四、關於Red Hat Enterprise Linux的yum源配置
Red Hat Enterprise Linux 更新只有注冊的用戶可用,卸載紅帽默認yum客戶端后,安裝CentOS的yum客戶端,修改yum源后即可再rhel中使用CentOS的更新。