YUM概述
YUM (Yellow dog Updater Modified):基于RPM包建構的軟體更新機制,可以自動解決依賴關系,所有軟體包由集中的YUM軟體倉庫提供。
Ubuntu、CentOS 8 用的安裝程式時apt軟體
軟體倉庫的提供方式
FTP服務:ftp://.....
HTTP服務:http://......
本地目錄: file://...
YUM工具概述
關于YUM指令
由軟體包yum-3.4.3-150.el7.centos.noarch提供
用來通路YUM倉庫,查詢、下載下傳及安裝、解除安裝軟體包
yum常用指令
yum -y install 軟體名 #安裝、更新軟體包,“-y”選項表示自動确認
yum -y remove 軟體名 #解除安裝軟體包,可自動解決其依賴關系
yum groupremove #解除安裝軟體
yum -y update 軟體名 #更新軟體包
yum list #查詢軟體包清單
yum list installed #查詢系統中已安裝的軟體包
yum list available #查詢倉庫中尚未安裝的軟體包
yum list updates #查詢可以更新版本的軟體包
yum info 軟體名 #查詢軟體包的描述資訊
yum info httpd
yum search [all] 關鍵詞 #根據某個關鍵詞來查找相關的軟體包
yum search all httpd
yum whatprovides 指令 #查詢指令屬于哪個軟體包
yum whatprovides netstat
yum grouplist 【包組名】 #查詢軟體包組
yum groupinfo <包組名>
RPM軟體包的來源
CentOS釋出的RPM包集
第三方組織釋出的RPM包集合
使用者自定義的RPM包集合
YUM的配置檔案
基本設定:/etc/yum.conf
倉庫設定:/etc/yum.repos.d/*.repo
日志檔案:/var/log/yum.log
建構本地CentOS 7本地yum軟體倉庫
RPM包來自CentOS 7 DVDCD光牒
當地YUM倉庫:為客戶機指定YUM倉庫位置,配置檔案:/etc/yum.repos.d/centos7.repo,實作裡可以将本地配置檔案移走,将CD光牒挂載後,自己建立一個新的本地配置檔案:local.repo。
配置過程:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5iMwMjMykjM4kDNxITOzYTMvwVMxITMxIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
FTP方式提供給客戶機
在軟體倉庫中加入非官方RPM包組
包括存在依賴關系的所有RPM包
使用createrepo工具建立倉庫資料檔案:非官方下載下傳要放在下面的目錄中
mkdir /var/ftp/other
cd /var/ftp/other //非官方的RPM包存放的目錄
createrepo -g /media/cdrom/reoedata/repomd.xml ./ #通過這條指令将下載下傳的資料包打包
FTP方式的YUM安裝示範如下:
線上YUM和本地源的配置:
第一步:修改local.repo檔案在/etc/yum.repos.d/目錄下
第二步:将可以連外網的系統打開,執行wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 将阿裡雲鏡像下載下傳到/etc/yum.repos.d/目錄下
第三步:重新整理緩存, yum claen all && yum makecache #清理緩存并且生成新的緩存
然後就可以直接用阿裡雲倉庫裡的軟體包安裝檔案了,都是最新的軟體包,但是必須有網的環境下才可以使用。如果想在沒有網的情況下也能使用yum倉庫裡的軟體,就需要将阿裡雲倉庫下載下傳到本地,占用空間較高,如果有想了解的可以私下問我
當既有本地yum源又有aliyun源的時候,我們在裝軟體包的時候當然希望先用本地的yum源去安裝,
本地找不到可用的包時再使用aliyun源去安裝軟體,這裡就涉及到了優先級的問題,
yum提供的插件yum-plugin-priorities.noarch可以解決這個問題
1.檢視是否安裝了yum-plugin優先級插件
rpm -qa |grep yum-plugin-
2.如果沒有安裝,就安裝插件
yum -y install yum-plugin-priorities.noarch
3.檢視插件是否啟用
cat /etc/yum/pluginconf.d/priorities.conf
[main]:
enabled = 1 # 1為啟動,0 為禁止
4.修改本地yum源優先使用
vi local.repo
[local]
name=local
baseurl=file:///mnt/
enabled=1
gpgcheck=1
priority=1 #數字越小優先級越高
[epel]
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enabled=1
gpgcheck=0
priority=2
5.驗證安裝包的數量
執行yum repolist all 可顯示所有倉庫包
//yum 指令僅下載下傳安裝包
方式一:
yum install --downloadonly mariadb
#下載下傳下來的安裝包都是放在 /var/cache/yum/x86_64/7/ 目錄下
方式二:
yumdownloader --destdir=/opt mariadb mariadb-server
#yumdownloader 僅下載下傳指定軟體包,參數 --destdir 是用來指定存放下載下傳的安裝包的目錄