一、YUM倉庫簡介
1.1yum簡介
yum是一個基于RPM包(是Red-Hat Package Manager紅帽軟體包管理器的縮寫)構建的軟體更新機制,能夠自動解決軟體包之間的依賴關系,解決了日常作業中的大量查找安裝依賴包的時間,為什么會有依賴關系的發生 因為linux本身就是以系統簡潔為自身優勢,所以在安裝作業系統的時候并沒有將所有的庫檔案以及編譯軟體包進行安裝,所以在linux作業系統上進行軟體安裝的時候會出現軟體包依賴的情況,yum由倉庫和客戶端組成,也就是整個yum由兩部分組成,所以yum可以存放在兩臺服務器上,也可以存放在一臺服務器上,可以有官方來提供服務,也可以由第三方來提供,比如國內的阿里云,搜狐云,還有一些非盈利組織比如學校等,官方的源一般在國外,下載速度肯定有限,手動更改成國內的云可以大幅提升下載速度,
YUM 的前身是YUP(Yellow dog Updater,Yellow dog Linux 的軟體更新器),最初由 TSS 公司(Terra Soft Solutions,INC.)使用 Python 語言開發而成,后來由杜克大學(Duck University)的 Linux 開發隊伍進行改進,命名為 YUM(Yellow dog Updater,Modified), 要成功使用 YUM 機制來更新系統和軟體,需要有一個包含各種 rpm 安裝包檔案及其依 賴軟體的軟體倉庫(repository),提供軟體倉庫的服務器也稱為“源”服務器,在客戶機中只 要正確指定軟體倉庫的地址等資訊,就可以通過對應的“源”服務器來安裝或更新軟體,
1.2yum實作程序
先在yum服務器上創建 yum repository(倉庫),在倉庫中事先存盤了眾多rpm包,以及包的相關的元資料檔案(放置于特定目錄repodata下),當yum客戶端利用yum/dnf工具進行安裝時包時,會自動下載repodata中的元資料,查詢遠資料是否存在相關的包及依賴關系,自動從倉庫中找到相關包下載并安裝,

yum需要依賴于環境,依賴于服務端和客戶端,允許跨網路,
(1)服務端需要的兩個檔案:
- RPM包(Packages檔案夾中)
- 元資料(repodata檔案夾:目錄(軟體的目錄),軟體的依賴關系,軟體的位置)
(2)客戶端的組態檔中 :
- baseurl=地址一定要寫到這兩個檔案夾repodata和packages的上級目錄
- 最終形成兩個檔案夾Packages (包檔案夾一般取名packages)和repodata(元資料檔案夾)
(3)倉庫型別:
- 光碟的倉庫基本倉庫:比較常用的
- epel擴展倉庫:比較新
1.3如何實作安裝服務

二、YUM組態檔及命令
2.1yum組態檔
(1)主組態檔
1 [root@server ~]#cat /etc/yum.conf

(2)默認的yum倉庫 是centos官方的yum源,需要聯網才可以使用
[root@server ~]#ls /etc/yum.repos.d/
![]()
2.2yum命令詳解
(1)yum命令


(2)查詢,升級,下載
1 yum list [軟體名]:顯示可用的安裝包,如不加軟體名是顯示所有的可用包,由于軟體過多不做例子, 2 yum info [軟體名]:顯示安裝包詳細資訊,如不加軟體名是顯示所有包的詳細資訊, 3 yum search [軟體名]:根據關鍵字查找軟體安裝包,相當于你只知道這個包里的某個關鍵字會全部給你匹配出來 4 yum grouplist [包組名]:安裝包組的查詢不加包組名就是顯示所有 5 yum groupinfo [包組名]:不加包組名顯示全部 6 yum install [軟體名]:安裝軟體包 7 yum update:更新包組,可以單個也可以全部后面加具體包組名稱就是單個更新,不加就是全部更新, 8 yum remove [軟體名]:卸載已安裝的軟體必須加軟體名 9 yum history:查看歷史的使用記錄 10 yum history undo [數字]:進行卸載,這樣對比remove好處是可以將所有的依賴都洗掉 11 yum history redo [數字]:重新安裝一遍
三、搭建倉庫的方式
3.1搭建本地yum
1 [root@server ~]#mount /dev/sr0 /mnt/ 2 [root@server ~]#cd /etc/yum.repos.d/ 3 [root@server /etc/yum.repos.d]#mkdir bak 4 [root@server /etc/yum.repos.d]#mv *.repo bak/ 5 [root@server /etc/yum.repos.d]#vim local.repo 6 [local] 7 name=local 8 baseurl=file:///mnt 9 enabled=1 10 gpgcheck=0 11 [root@server /etc/yum.repos.d]#yum clean all && yum makecache


3.2http方式搭建云倉庫
1 實驗環境:CentOS7-1和CentOS7-2 2 實驗目的:搭建http本地倉庫 3 服務端: 4 [root@server ~]#yum install -y httpd 5 [root@server ~]#systemctl start httpd 6 [root@server ~]#ss -ntpa |grep ":80" 7 [root@server ~]#cd /var/www/html #放你想共享給被人的檔案 8 [root@server /var/www/html]#mkdir centos7 9 [root@server /var/www/html]#mount /dev/sr0 centos7/ 10 [root@server /var/www/html]#df -Th 11 [root@server /var/www/html]#vim index.html 12 "你真棒,你真是個小天才!" 13 測驗服務端環境:瀏覽器訪問192.168.10.10/index.html 14 15 客戶端: 16 [root@client ~]#curl 192.168.10.10 #測驗 17 [root@client ~]#cd /etc/yum.repos.d 18 [root@client /etc/yum.repos.d]#mkdir bak 19 [root@client /etc/yum.repos.d]#mv *.repo bak 20 [root@client /etc/yum.repos.d]#ls 21 [root@client /etc/yum.repos.d]#vim http.repo 22 [http] 23 name=http 24 baseurl=http://192.168.10.10/centos7 25 gpgcheck=0 26 [root@client /etc/yum.repos.d]#yum clean all && yum makecache 27 [root@client /etc/yum.repos.d]#yum -y install tree
服務端:



客戶端:




3.3ftp方式搭建云倉庫
1 實驗環境:CentOS7-1和CentOS7-2 2 實驗目的:搭建ftp本地倉庫 3 服務端: 4 [root@server ~]#yum -y install vsftpd.x86_64 5 [root@server ~]#systemctl start vsftpd 6 [root@server ~]#ss -ntpa |grep vsftpd 7 [root@server ~]#cd /var/ftp #放你想共享給被人的檔案 8 [root@server /var/ftp]#mkdir centos7/ 9 [root@server /var/ftp]#mount /dev/sr0 centos7/ 10 [root@server /var/ftp]#df -Th 11 12 客戶端: 13 [root@client ~]#yum -y install ftp #測驗 14 [root@client ~]#cd /etc/yum.repos.d 15 [root@client /etc/yum.repos.d]#mkdir bak 16 [root@client /etc/yum.repos.d]#mv *.repo bak 17 [root@client /etc/yum.repos.d]#ls 18 [root@client /etc/yum.repos.d]#vim ftp.repo 19 [ftp] 20 name=ftp 21 baseurl=ftp://192.168.10.10/centos7 22 gpgcheck=0 23 [root@client /etc/yum.repos.d]#yum clean all && yum makecache 24 [root@client /etc/yum.repos.d]#yum -y install tree
服務端:



客戶端:



轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519147.html
標籤:其他
下一篇:給 hugo 博客添加搜索功能
