不要再一個個配置了,教你配置內部統一可訪問的 YUM 源
今天分享一下YUM源配置。
一、構建內部YUM源必要性
YUM光盤源默認只能本機使用,局域網其他服務器無法使用 YUM光盤源,所以需要通過HTTP構建整個局域網都可以訪問的內部YUM源。
通過搭建內部YUM源,可以自動處理軟件包之間的依賴關系,確保在安裝或更新軟件包時,所有必需的依賴項都能被正確處理
二、搭建內部yum源步驟
1. 準備實驗環境
角色 | 操作系統 | IP地址 |
服務器端 | Rocky Linux release 9.1 | 10.10.10.200 |
客戶端 | Rocky Linux release 9.1 | 10.10.10.201 |
2. 基于光盤構建本地yum源
無網環境需要做本地yum源,首先需要在虛擬機上掛載iso鏡像。
(1)掛載光盤
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
(2)備份原有repo文件
[root@localhost ~]# mkdir /etc/yum.repos.d/backup
[root@localhost ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
(3)創建新repo文件
[root@localhost ~]# cat >> /etc/yum.repos.d/local.repo << EOF
[Base]
name=Base
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
EOF
(4)安裝軟件測試
[root@localhost ~]# yum install -y telnet
順利安裝軟件包就說明基于光盤做的yum源已經做好了。可以繼續做下面的步驟了
3. 安裝HTTP服務器
在YUM服務器上創建一個簡單的HTTP服務,可以使用Apache或Nginx,我這里使用Apache。
[root@localhost ~]# yum install httpd -y
4. 創建repodata目錄
# 放置整個rockyLinux鏡像的軟件包
[root@localhost ~]# mkdir /var/www/html/rockylinux
5. 將需要發布軟件包復制到repodata目錄
將光盤掛載后的文件拷貝到repodata目錄下:
[root@localhost ~]# cp -r /mnt/* /var/www/html/rockylinux
整個鏡像文件拷貝需要時間較長一點。
6. 安裝createrepo包
[root@localhost ~]# yum install -y createrepo
7. 運行createrepo來創建倉庫元數據
[root@localhost ~]# createrepo /var/www/html/rockylinux
Directory walk started
Directory walk done - 6615 packages
Temporary output repo path: /var/www/html/rockylinux/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
做成repo文件:
[root@localhost ~]# mkdir /var/www/html/repos/rockylinx
[root@localhost ~]# cat >> /var/www/html/repos/rockylinx/rockylinux.repo << EOF
[Base]
name=Base
baseurl=http://10.10.10.200/rockylinux/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=http://10.10.10.200/rockylinux/AppStream
enabled=1
gpgcheck=0
EOF
8. 啟動HTTP服務
# 啟動HTTP并設置開機自啟動
[root@localhost ~]# systemctl enable --now httpd
# 查看httpd狀態
[root@localhost ~]# systemctl status httpd
三、客戶端使用yum源
1. 備份原有的repo
[root@localhost ~]# mkdir /etc/yum.repos.d/backup
[root@localhost ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
2. 獲取yum源的兩種方法
方法一:直接wget已經在服務器端做好的repo文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget http://10.10.10.200/repos/rockylinx/rockylinux.repo
方法二:在客戶端創建新的repo文件
[root@localhost ~]# cat >> /etc/yum.repos.d/rockylinux.repo << EOF
[Base]
name=Base
baseurl=http://10.10.10.200/rockylinux/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=http://10.10.10.200/rockylinux/AppStream
enabled=1
gpgcheck=0
EOF
3. 測試yum源
# 先清一下原有yum源數據
[root@localhost ~]# yum clean all
# 安裝telnet測試一下
[root@localhost ~]# yum install -y telnet
成功安裝就代表內部yum源已經做成功了。
局域網內其他服務器也可以通過wget直接獲取或配置repo文件來構建可用的yum源。
4. httpd作為共享服務器使用
可以在httpd的發布目錄下創建一個software目錄,將一些常用的軟件包放置到里面,局域網內的客戶端可以直接通過wget來直接獲取軟件包。
服務器端創建發布目錄并將軟件包上傳:
# 創建software目錄
[root@localhost ~]# mkdir /var/www/html/software
# 此處上傳Tomcat包到software為例
[root@localhost ~]# cp /root/apache-tomcat-8.5.97.tar.gz /var/www/html/software
客戶端獲取軟件包:
[root@localhost ~]# wget http://10.10.10.200/software/apache-tomcat-8.5.97.tar.gz
【溫馨提示】:本次操作的服務器端是RockyLinux操作系統,不只是可以做rockylinux操作系統的YUM源,也可以在服務器端配置多種操作系統的yum源,方法相同,如RedHat/CentOS,openEuler,麒麟V10等。