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虚机中的光盘图标
🍀 ISO 一次性/永久性挂载:/etc/fastab
一: 一次性挂载,重启完你系统后失效
mount /dev/sr0 /mnt/cdrom
二: 永久挂载
我们的设备的挂载信息在 /etc/fstab 里面,所以我们要想永久挂载,需要修改 fstab 文件。用 vim 打开该文件,我们可以看到有三行信息,是其他分区的挂载信息,所以我们现在要把我们的光盘的挂载信息添加过去。
添加如下我们光盘的挂载信息过去
/dev/sr0 /mnt/cdrom iso9660 defaults 0 0
添加完后,保存退出;
然后执行 mount -a 。这个命令的意思是挂载fstab文件中的所有文件系统。可以看到,我们已经挂载好了;
备注:
在虚机系统中,我们的 iso 文件是 /dev/sr0 设备,系统会默认把我们的iso文件挂载到 /run/media/$username/ 目录下。
(也许可能出现在sr1上。物理机情况也相似)
案例:访问misc/cd下面的本地光盘文件
#这个看起来还是很666的,新鲜的yum方式;
[root@centos76 yum.repos.d]#yum install -y autofs
[root@centos76 ~]#systemctl enable --now autofs
然后yum直接配置file:///misc/cd /,就可以挂载本地光盘了。
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查看其 状态:
(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/
(4) 此时在宿主机上打开浏 览器,就能够看到yum源文件了
ftp://10.10.10.135
注意:vsftpd服务的/是在/var/ftp/pub目录下的。
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
测试是否可以正常安装软件:
可以正常安装软件,实验结束。
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查看其状态:
(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/
注意:httpd服务的配置文件/etc/httpd/conf/httpd.conf,这里默认不变。
[root@http-yum-server ~]#vim /etc/httpd/conf/httpd.conf
注意这边如果要更改httpd服务的端口后的话,可以从这里设置:
vim /etc/httpd/conf/httpd.conf #修改如下80为8875
重启httpd服务:
(4)此时在宿主机上打开浏览器,就能够看到yum源文件了 http://10.10.10.135/centos7yum/centos761810
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
测试是否可以正常安装软件:
可以正常安装软件,实验结束。
🍀 总结
利用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