在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 源