在centos 中搭建本地yum 源
yum源是什么?
總所周知我們安裝軟件,是需要軟件包的,而且軟件在安裝的時候會有許多依賴包。這樣導致我們手動通過軟件包安裝軟件是十分繁瑣的, yum 源是解決這個繁瑣的過程,他將我們管理的軟件包規整到一起,解決了安裝時候各個軟件的依賴問題。
centos 搭建http 方式的yum 源方法
1. 准備環境 關閉防火牆 selinux
檢查防火牆,防火牆需要是關閉狀態
[root@centos-vm1 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
Feb 24 18:06:13 centos-vm1 systemd[1]: Starting firewalld - dynamic firewall daemon...
Feb 24 18:06:19 centos-vm1 systemd[1]: Started firewalld - dynamic firewall daemon.
Feb 24 18:06:20 centos-vm1 firewalld[716]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.
Feb 24 22:32:11 centos-vm1 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Feb 24 22:32:13 centos-vm1 systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@centos-vm1 ~]#
檢查selinux ,selinux 為disabled
[root@centos-vm1 ~]# getenforce
Disabled
或者檢查selinux 配置文件
[root@centos-vm1 ~]# cat /etc/selinux/config | grep SELINUX
# SELINUX= can take one of these three values:
SELINUX=disabled
2. 需要提供yum 源的server 上搭建配置http 服務
[root@centos-vm1 ~]# yum install -y httpd
啟動httpd 服務,使用本地ip 嘗試登錄http 驗證httpd 是否正常
[root@centos-vm1 ~]# systemctl status httpd.service (檢查服務,如果服務不是為running 請將服務先start )
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-02-24 22:38:48 EST; 1h 28min ago
Docs: man:httpd(8)
man:apachectl(8)
/etc/httpd/conf/httpd.conf 此文件是httpd 的核心配置文件
我們httpd 中默認提供web 界面的位置是我們/var/www/html 目錄,如果我們yum 源想指定目錄,需要修改/etc/httpd/conf/httpd.conf 此文件
DocumentRoot "/var/www/html" 修改為DocumentRoot "/usr/local/" {此處的/usr/local 是我們指定的目錄}
<Directory "/var/www/html"> 修改為<Directory "/usr/local/">
如果不需要指定目錄,可以在/var/www/html/ 自己新建一個目錄即可
這里演示新建目錄
新建的目錄是用來存放軟件的安裝包的,在centos 中軟件的安裝包大都是rpm 安裝包
在/usr/local/ 新建yumrepo 目錄
mkdir /usr/local/yumrepo
我這里是掛載鏡像,將鏡像的rpm 軟件包cp到/usr/local/yumrepo 此目錄使用的。
先將我們的iso 鏡像掛載
查詢當前的鏡像是否存在
[root@centos-vm1 ~]# ls
anaconda-ks.cfg CentOS-7-x86_64-Minimal-1804.iso
創建一個掛載目錄 PS 新建一個目錄或者使用/mnt/ 目錄都可以
[root@centos-vm1 ~]# mkdir test
將iso 鏡像掛載到我們的掛載目錄上
[root@centos-vm1 ~]# mount -t iso9660 -o loop CentOS-7-x86_64-Minimal-1804.iso test/
mount: /dev/loop0 is write-protected, mounting read-only
查看掛載目錄,里面會有數據,我們要用的Packages 目錄 此目錄是存放rpm 包的目錄
[root@centos-vm1 ~]# ls test/
CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL
將此目錄的rpm 包cp 到我們的設置的http目錄下
[root@centos-vm1 ~]# cp test/Packages/* /usr/local/yumrepo/
給/usr/local/yumrepo 配置權限,因為我們的httpd 的服務使用的是apache用戶,該目錄需要有普通用戶的執行權限
chmod -R 755 /usr/local/yumrepo
重啟httpd 服務
[root@centos-vm1 ~]# systemctl restart httpd.service
重啟服務可以通過本地地址登錄界面看到我們的yum 源
在同一局域網中另一個server 上配置http yum 源
配置http yum 源
進入到/etc/yum.repos.d/ 目錄下創建一個備份的目錄,將我們/etc/yum.repos.d/ 下的yum 源 mv移動到我們的新建的備份目錄下
[root@centos-vm2 ~]# cd /etc/yum.repos.d/
[root@centos-vm2 yum.repos.d]# ls
CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo CentOS-x86_64-kernel.repo
[root@centos-vm2 yum.repos.d]#
[root@centos-vm2 yum.repos.d]# mkdir backup
[root@centos-vm2 yum.repos.d]# mv CentOS-* backup/
[root@centos-vm2 yum.repos.d]# ls
backup
新建我們http yum源文件
[root@centos-vm2 yum.repos.d]# vim basics.repo
[root@centos-vm2 yum.repos.d]#
[root@centos-vm2 yum.repos.d]# cat basics.repo
[basics]
name=basics-repo #我們yum 源命名
enabled=1 #啟用yum源,0為不啟用,1為啟用
gkgcheck=0 #檢查GPG-KEY,0為不檢查,1為檢查
baseurl=http://192.168.8.99/yumrepo #是服務器設置中最重要的部分,只有設置正確,才能從上面獲取軟件
yum clean all #清除yum緩存
yum makecache #緩存本地yum源中的軟件包信息
yum repolist #查看源軟件包
嘗試安裝任意一個軟件包檢查是否可以使用http yum 源