应用的环境:在项目的实施中有很多单位(公司)存在没有外网的情况下。此时,在服气上直接使用YUM是根本无法使用,为了方便的本地搭建环境,也是为了更快速的安装软件的依赖包,我采取临时搭建法,不但可以帮助机器使用,也可以供整个服务器群使用
yum仓库的搭建
首先我们需要使用两台虚拟机:
名称 | ip | 版本 |
---|---|---|
服务端 | 10.0.0.41 | centos7.7 |
客户端 | 10.0.0.42 | centos7.7 |
服务端搭建
先修改yum的配置文件
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
创建目录供yum仓库使用
这里的文件名随意
mkdir -p /yum/centos7
安装createrepo软件
主要是用于生成yum仓库的数据库软件
yum -y install createrepo yum-utils
初始化createrepo索引文件
cd /yum/centos7
# 只下载不安装
yumdownloader tree
#更新repodata索引文件
createrepo -pdo /yum/centos7/ /yum/centos7/
提供yum的服务
可以使用nginx和httpd提供web服务,但是Python提供的web更加方便,也适用于内网
cd /yum/centos7/
python -m SimpleHTTPServer 81 &>/dev/null &
可以在本机上的浏览器输入网址,加上端口号81 例如/10.0.0.41:81/
添加新的rpm包
# 也是只下件不安装
yumdownloader pcre-devel openssl-devel
# 然后每加入一个rpm包就要更新一下
createrepo --update /yum/centos7/
客户端的配置
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.ori
cat >/etc/yum.repos.d/centos7.repo<<EOF
[centos7]
name=Server
baseurl=http://10.0.0.41:81
enable=1
gpgcheck=0
EOF
临时使用指定的centos7的库,就是服务端所建立的目录
yum --enablerepo=centos7 --disablerepo=base,extras,updates,epel list
永久使用的代码是
sed -i -e '19a enabled=0' -e '29a enabled=0' -e '39a enabled=0' /etc/yum.repos.d/CentOS-Base.repo
测试下载
先注释掉你的dns解析
然后尝试ping一下外网网址
[root@ c7-42 yum.repos.d]# cat /etc/resolv.conf
#nameserver 223.5.5.5
#nameserver 223.6.6.6
[root@ c7-42 yum.repos.d]# ping qq.com
ping: qq.com: Name or service not known
服务端安装nginx或者是httpd之类的rpm包
这里用ngin代替
[root@ c7-41 centos7]# yum -y install nginx
找到有关于的rpm包
[root@ c7-41 7]# cd /var/cache/yum/x86_64/7/
[root@ c7-41 7]# find . -name '*.rpm'
./base/packages/createrepo-0.9.9-28.el7.noarch.rpm
./base/packages/deltarpm-3.6-3.el7.x86_64.rpm
./base/packages/python-chardet-2.2.1-3.el7.noarch.rpm
./base/packages/yum-utils-1.1.31-52.el7.noarch.rpm
./base/packages/python-deltarpm-3.6-3.el7.x86_64.rpm
./base/packages/python-kitchen-1.1.1-5.el7.noarch.rpm
./base/packages/centos-indexhtml-7-9.el7.centos.noarch.rpm
./base/packages/dejavu-fonts-common-2.33-6.el7.noarch.rpm
./base/packages/dejavu-sans-fonts-2.33-6.el7.noarch.rpm
./base/packages/fontconfig-2.13.0-4.3.el7.x86_64.rpm
./base/packages/fontpackages-filesystem-1.44-8.el7.noarch.rpm
./base/packages/gd-2.0.35-26.el7.x86_64.rpm
./base/packages/gperftools-libs-2.6.1-1.el7.x86_64.rpm
./base/packages/libX11-1.6.7-2.el7.x86_64.rpm
./base/packages/libX11-common-1.6.7-2.el7.noarch.rpm
./base/packages/libXau-1.0.8-2.1.el7.x86_64.rpm
./base/packages/libXpm-3.5.12-1.el7.x86_64.rpm
./base/packages/libxcb-1.13-1.el7.x86_64.rpm
./epel/packages/nginx-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-all-modules-1.16.1-1.el7.noarch.rpm
./epel/packages/nginx-filesystem-1.16.1-1.el7.noarch.rpm
./epel/packages/nginx-mod-http-image-filter-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-http-perl-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-http-xslt-filter-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-mail-1.16.1-1.el7.x86_64.rpm
./epel/packages/nginx-mod-stream-1.16.1-1.el7.x86_64.rpm
然后添加到你的yum库里面
[root@ c7-41 7]# find . -name '*.rpm'|xargs -i cp {} /yum/centos7
更新一下
[root@ c7-41 centos7]# cd /yum/centos7/
[root@ c7-41 centos7]# createrepo --update /yum/centos7/
客户端重新加载yum缓存的rpm包
yum clean all
yum makecache
yum -y install nginx
结束