1.首先安裝一個web伺服器來作為yum源的伺服器。例如Apache、Nginx等web伺服器都可以作為yum源的伺服器。
2.然後安裝createrepo工具來生成yum倉庫中繼資料。在Linux系統上,您可以通過運作指令sudo yum install createrepo來安裝該工具。
3.在yum源伺服器上建立一個新目錄,比如/var/www/html/yumrepo,并使用createrepo指令來初始化該目錄,生成yum倉庫的清單中繼資料。運作指令createrepo /var/www/html/yumrepo。
4.将需要安裝的軟體包上傳到剛才建立的yum源目錄中。您可以從公共yum源或官方軟體源下載下傳rpm檔案并将其複制到/var/www/html/yumrepo目錄中。 配置用戶端yum源檔案,使其指向您的新yum源,而不是預設的公共yum源。
5.在用戶端機器上打開yum配置檔案,該檔案通常位于/etc/yum.repos.d/目錄中,然後編輯配置檔案,将baseurl設定為指向您的私有yum倉庫。本例以Centos7.9系統為例,服務端IP位址為A,用戶端IP位址為B。
一、在服務端上:需要建立Yum倉庫,通過配置WEB伺服器或FTP伺服器來把Yum倉庫分享給區域網路内其它Linux機器使用。
(1)環境準備
1. 關閉selinux
sestatus
vi /etc/selinus/config #SELINUX 修改為 disabled, 需重新開機機器才生效
2. 關閉防火牆
firewall-cmd --state
systemctl stop firewalld #停止firewall
systemctl disable firewalld #禁用 firewall 開機啟動
(2)導入rpm包,生成索引檔案。
在本例中,以鏡像包的方式導入rpm包。
1. 挂載磁盤鏡像/epel鏡像
mkdir -p /media/cdrom
mkdir -p /media/cdrom-epel
mount -o loop -t iso9660 /home/bk_offline_repo-7.5.1804.iso /media/cdrom-epel
mount -o loop -t iso9660 /home/CentOS-7-x86_64-DVD-1810.iso /media/cdrom
2. 複制rpm包至/yum/Packages
cd /media/cdrom
cp -R Packages/ /yum/
unalias cp
cd /media/cdrom-epel
cp -rf *.rpm /yum/Packages/
alias cp='cp -i'
3. 按照先後順序執行以下指令,不然會報錯缺少依賴包。
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh libxml2-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm #createrepo主要是為後續生成倉庫資料使用
4. 建立倉庫資料,建立索引
createrepo -v /yum #運作完成後會生成repodata檔案夾
5. 在/etc/yum.repos.d/目錄下建立一個名為 local.repo檔案,其中包含所有的yum資訊
原目錄下的檔案備份至其它位置,如yum.repos.d.bak
vi /etc/yum.repos.d/local.repo
[localrepo] #注意,該地方不能有空格,不然後續執行 yum repolist all時會報錯
repolist:0
name=local-yum
baseurl=file://yum # file://告訴yum為本地倉庫,/xtkyum為絕對路徑
enabled=1
gpgcheck=0 #關閉rpm包的gpg校驗功能;個人環境,建議關閉,參數值為0;生産環境,建議打開,參數值為1。
儲存退出。
6. yum clean all #清理緩存
yum repolist all #檢查倉庫清單,在清單中能看到localrepo
7. 測試能否成功安裝。
yum -y install gcc
yum -y install ntp
(3)配置web或http分享yum倉庫。
>>>使用ftp伺服器(vsftpd)分享yum倉庫
1. yum -y install vsftpd
2. 把yum倉庫下的檔案拷貝到vsftpd的預設根目錄 /var/ftp/pub,包括repodate
cd /yum
cp -R Packages /var/ftp/pub
cp -R repodate /var/ftp/pub
chmod 755 -R /var/ftp/pub
3. systemctl restart vsftpd
systemctl status vsftpd
>>>使用web伺服器(apache)分享yum倉庫
1. yum -y install httpd
2. 把yum倉庫下的檔案拷貝到預設根目錄 /var/www/html/,包括repodate
cd /yum
cp -R Packages /var/www/html
cp -R repodate /var/www/html
chmod 755 -R /var/www/html
3. systemctl restart httpd
systemctl status httpd
二、在用戶端上:建立repo配置檔案,測試yum倉庫是否能正常使用。
1. 在/etc/yum.repos.d/目錄下建立一個名為 local.repo檔案,其中包含所有的yum資訊
原目錄下的檔案備份至其它位置,如yum.repos.d.bak
2. vi local.repo (ftp)
[localrepo]
name=localyum
baseurl=ftp://伺服器ip位址A/pub/
enabled=1
gpgcheck=0
儲存後退出
>>>如果是web伺服器,baseurl修改成:baseurl=http://伺服器IP位址A
3. 最後,測試用戶端是否可以成功連接配接到您的私有yum源,并從中下載下傳安裝包。您可以嘗試運作yum指令,例如sudo yum update或者sudo yum install package_name進行測試。
文章來源:如何在公司内網搭建YUM倉庫鏡像源 - 裕普網絡-裕普網絡