跳到主要内容

2、搭建yum仓库

搭建yum仓库

1、Centos7配置本地yum源服务

1.挂载本地镜像

mount /dev/cdrom /mnt  # 物理机或虚机通过cd-rom挂载的iso
或者
mount /iso路径 /mnt # 这种情况是彻底把iso传到系统里去了

2.编写yum配置文件base.repo

cd /etc/yum.repos.d/
mkdir backup
mv * backup/

cat > /etc/yum.repos.d/base.repo << EOF
[base]
name=local_yum
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF

🍀 说明:

[name]               #括号中的名称为仓库源名称,通常为字母和数字,必须填写
name=my new repo # 对yum的描述,可写可不写
baseurl=file:///mnt/cdrom # baseurl表示声明yum可以管理并使用的rpm包路径,必须填写
enabled=1 # enabled表示当前仓库是否开启,1为开启,0为关闭,此项不写默认为开启
gpgcheck=0 # gpgcheck表示安装rpm包时,是否基于公私钥对匹配包的安全信息,1表示开启,0表示关闭,此项不写默认为验证

🍀 注意:这里的gpgcheck=0选项

cd /etc/yum.repos.d/
vi base.repo
内容如下:
[base]
name=local yum
baseurl=file:///mac
gpgcheck=1 #其实没必要加这个gpgcheck=1的。。。,一般按自己的书写方式就行:
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[root@zxl_ecs ~]$ls /etc/pki/rpm-gpg/ #注意下这个校验方式:
RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Debug-7 RPM-GPG-KEY-CentOS-Testing-7 RPM-GPG-KEY-EPEL-7

3.验证

yum clean all # 清空缓存信息。 
yum makecache fast # 生成缓存信息

yum repolist all # 验证
或者:
yum list | wc -l 统计列出所有包的数量,如果列出了,说明yum源配置完成。

🍀 vmwareworkstation虚机中的光盘图标

img

img

img

🍀 ISO 一次性/永久性挂载:/etc/fastab

一: 一次性挂载,重启完你系统后失效

mount /dev/sr0  /mnt/cdrom

img

二: 永久挂载

我们的设备的挂载信息在 /etc/fstab 里面,所以我们要想永久挂载,需要修改 fstab 文件。用 vim 打开该文件,我们可以看到有三行信息,是其他分区的挂载信息,所以我们现在要把我们的光盘的挂载信息添加过去。

img

添加如下我们光盘的挂载信息过去

/dev/sr0     /mnt/cdrom    iso9660  defaults   0   0

img

添加完后,保存退出;

然后执行 mount -a 。这个命令的意思是挂载fstab文件中的所有文件系统。可以看到,我们已经挂载好了;

img

备注:

在虚机系统中,我们的 iso 文件是 /dev/sr0 设备,系统会默认把我们的iso文件挂载到 /run/media/$username/ 目录下。

(也许可能出现在sr1上。物理机情况也相似)

img

案例:访问misc/cd下面的本地光盘文件

#这个看起来还是很666的,新鲜的yum方式;

[root@centos76 yum.repos.d]#yum install -y autofs
[root@centos76 ~]#systemctl enable --now autofs
然后yum直接配置file:///misc/cd /,就可以挂载本地光盘了。

img

img

img

2、Centos7基于ftp服务的网络yum源的搭建

测试环境

2台vmworkstation Centos7.6虚机。

1.服务器端配置

(1) 安装ftp服务

[root@ftp-yum-server ~]#yum install -y vsftpd  # 可以利用本地源或者网络yum源进行httpd软件的安装

(2) 配置基础服务环境,开启httpd服务并设置开机启动

# 关闭防火墙/NetwokManager/selinux
systemctl stop firewalld
systemctl disable firewalld

systemctl stop NetworkManager
systemctl disable NetworkManager

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config

# 开启ftp服务并设置开机启动
systemctl restart vsftpd
systemctl enable vsftpd

# ftp服务启动成功后,可以利用systemctl status vsftpd查看其状态:

img

(3) 创建相应iso镜像文件

将ISO中的内容拷贝到/var/ftp/pub/目录下。
注意:vsftpd服务的/是在/var/ftp/pub目录下的。

[root@ftp-yum-server ~]#cd /var/ftp/pub/
[root@ftp-yum-server pub]#ls
[root@ftp-yum-server pub]#mkdir centos761810
[root@ftp-yum-server pub]#cp -rp /mnt/* /var/ftp/pub/centos761810/

img

(4) 此时在宿主机上打开浏览器,就能够看到yum源文件了

ftp://10.10.10.135

注意:vsftpd服务的/是在/var/ftp/pub目录下的。

img

img

2.客户端测试

注意:客户端是不需要安装vsftpd服务的,但要保证客户端和服务端可互访。

[root@client yum.repos.d]#systemctl status vsftpd
Unit vsftpd.service could not be found.
[root@client yum.repos.d]#

客户端配置ftp yum文件:

cat >> /etc/yum.repos.d/ftp.repo << EOF
[centos-source]
name=centos source
baseurl=ftp://10.10.10.135/pub/centos761810
enabled=1
gpgcheck=0
EOF

yum clean all
yum makecache
yum repolist all

img

测试是否可以正常安装软件:

img

可以正常安装软件,实验结束。

3、Centos7基于httpd服务的网络yum源的搭建

测试环境

2台vmworkstation Centos7.6虚机。

1.服务器端配置

(1)安装httpd服务

[root@http-yum-server ~]#yum install -y httpd  # 可以利用本地源或者网络yum源进行httpd软件的安装

(2)配置基础服务环境,开启httpd服务并设置开机启动

# 关闭防火墙/NetwokManager/selinux
systemctl stop firewalld
systemctl disable firewalld

systemctl stop NetworkManager
systemctl disable NetworkManager

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config

# 开启httpd服务并设置开机启动
systemctl restart httpd # 重启httpd服务可能稍微需要点时间
systemctl enable httpd

# httpd服务启动成功后,可以利用systemctl status httpd查看其状态:

img

(3)创建相应iso镜像文件

把相应iOS版本镜像内容copy到/var/www/html/centos7yum目录下相应目录(先mkdir出centos7yum目录及相应iso版本目录)。Httpd默认发布目录是/var/www/html/,相当于根目录,所有共享的文件都要放在这个目录里。在/etc/httpd/conf/httpd.conf文件可以查看到。

[root@http-yum-server ~]#cd /var/www/html/
[root@http-yum-server html]#ls
[root@http-yum-server html]#mkdir -p centos7yum/centos761810
[root@http-yum-server html]#cp -rp /mnt/* /var/www/html/centos7yum/centos761810/

img

注意:httpd服务的配置文件/etc/httpd/conf/httpd.conf,这里默认不变。
[root@http-yum-server ~]#vim /etc/httpd/conf/httpd.conf

img

img

注意这边如果要更改httpd服务的端口后的话,可以从这里设置:

vim /etc/httpd/conf/httpd.conf #修改如下80为8875

img

重启httpd服务:

img

(4)此时在宿主机上打开浏览器,就能够看到yum源文件了 http://10.10.10.135/centos7yum/centos761810

img

img

2.客户端测试

注意:客户端是不需要安装httpd服务的,但要保证客户端和服务端可互访。
[root@client yum.repos.d]#systemctl status httpd
Unit httpd.service could not be found.
[root@client yum.repos.d]#

客户端配置httpd yum文件:

cat >> /etc/yum.repos.d/http.repo << EOF
[centos-source]
name=centos source
baseurl=http://10.10.10.135/centos7yum/centos761810
enabled=1
gpgcheck=0
EOF

yum clean all
yum makecache
yum repolist all

img

测试是否可以正常安装软件:

img

可以正常安装软件,实验结束。

🍀 总结

利用httpd服务搭建yum其实是很简单的,但httpd知识还需要更深层次去学习;

貌似httpd软件漏扫很多,因此如果利用httpd服务提供yum服务的话,可能后续要利用源码安装httpd软件。

4、实战:Centos7配置公网yum源服务(测试成功)-2022.8.4

CentOS默认的yum源不是国内镜像,导致yum在线安装及更新速度不是很理想。这时候需要将yum源设置为国内镜像站点。国内主要开源的开源镜像站点应该是网易和阿里云了。

1.备份

把/etc/yum.repos.d/下的所有文件备份起来:
cd /etc/yum.repos.d/
mkdir backup
mv * backup/

2.wegt下载网络repo文件

# 备注:centos7 6 5版本的阿里云yum配置文件
# 前提是系统有安装wget软件包

CentOS7
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

CentOS6
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS5
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

#或者利用curl命令:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#或者使用163源:
wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo

3.验证

# 清理yum缓存
yum clean all

# 重建缓存
yum makecache# -->建立一个缓存,以后用install安装服务的时候就在缓存中搜索,提高了速度

#执行yum repolist all命令查看结果
yum repolist all

img