应用场景
在项目实施过程中,很多实施单位存在没有外网的情况。此时,在服务器上直接使用Yum命令根本无法使用,为了方便在本地搭建环境,为了方便快捷安装软件依赖包,我们采用临时解决方案进行本地Yum仓库搭建,不但可以供搭建机器使用,更可以供整个服务器群使用。
yum仓库搭建
环境:
服务端:10.0.0.41
客户端:10.0.0.42
服务端搭建
1.修改yum配置文件
yum下载软件不清空
[root@c7 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
2.创建目录用来做 YUM 仓库的使用
[root@c7 ~]# mkdir -p /yum/centos7
3.安装 createrepo 软件,用于生成 yum 仓库数据库的软件
[root@c7 ~]# yum -y install createrepo yum-utils
4.初始化repodata索引文件
yumdownloader:只下载软件不安装
[root@c7 ~]# cd /yum/centos7/
[root@c7 centos7]# yumdownloader tree
更新repodata索引文件
[root@c7 centos7]# createrepo -pdo /yum/centos7/ /yum/centos7/
5.提供yum服务
可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境
[root@c7 ~]# cd /yum/centos7/
[root@c7 centos7]# python -m SimpleHTTPServer 81 &> /dev/null &
[1] 3093
[root@c7 centos7]#
可以通过浏览器输入本机IP查看: 如http://10.0.0.41:81/
6.添加新的rpm包
只下载软件不安装
[root@c7 ~]# yumdownloader pcre-devel openssl-devel
每加入一个rpm包就要更新一下
[root@c7 ~]# cd /yum/centos7/
[root@c7 ~]# createrepo --update /yum/centos7/
更新后去查看
客户端配置
修改自带yum源,创建连接服务端的yum源
[root@c7 ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.ori
[root@c7 ~]# vim /etc/yum.repos.d/centos7.repo
[centos7]
name=Server
baseurl=http://10.0.0.41:81
enable=1
gpgcheck=0
临时使用指定的自己指定的centos7 库
[root@c7 ~]# yum --enablerepo=centos7 --disablerepo=base,extras,updates,epel list
永久使用
[root@c7 ~]# sed -i -e '19a enabled=0' -e '29a enabled=0' -e '39a enabled=0' /etc/yum.repos.d/CentOS-Base.repo
测试下载
1.在服务端操作
服务端安装nginx,找到nginx所有的相关rpm添加到自己的yum仓库
[root@c7 ~]# yum -y install nginx
[root@c7 ~]# cd /var/cache/yum/x86_64/7/
[root@c7 7]# find . -name '*.rpm'
[root@c7 7]# find . -name '*.rpm'|xargs -i cp {} /yum/centos7
更新自己的yum仓库
[root@c7 7]# cd /yum/centos7/
[root@c7 centos7]# createrepo --update /yum/centos7/
查看
http://10.0.0.41:81/
2.在客服端操作
注释/etc/resolv.conf,使其无法连接外网
[root@c7 ~]# vim /etc/resolv.conf
#nameserver 223.5.5.5
#nameserver 223.6.6.6
测试能否ping通外网
[root@c7 ~]# ping baidu.com
ping: baidu.com: Name or service not known
客户端重新加载yum缓存并下载nginx
[root@c7 ~]# yum clean all
[root@c7 ~]# yum makecache
[root@c7 ~]# yum -y install nginx
结论:客户端在没有外网的情况下成功下载nginx