准备A,B两台主机
1,在主机A 服务端上修改yum配置文件
#yum下载软件不清空
[root@ c7-41 ~] sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
[root@ c7-41 ~] mkdir -p /yum/centos7 #创建目录用来做 YUM 仓库的使用
2,安装createrepo 软件,用于生成 yum 仓库数据库的软件
[root@ c7-41 ~] yum -y install createrepo yum-utils
3,初始化repodata索引文件
[root@ c7-41 ~] cd /yum/centos7/
[root@ c7-41 centos7] yumdownloader tree # 只下载软件不安装
[root@ c7-41 centos7] createrepo -pdo /yum/centos7/ /yum/centos7/ #更新repodata索引文件
4,提供yum服务
[root@ c7-41 ~] cd /yum/centos7/
#可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境
[root@ c7-41 centos7] python -m SimpleHTTPServer 81 &>/dev/null &
#可以通过浏览器输入本机IP查看: 如http://10.0.0.41:81/
#可以查看一下python进程
[root@ c7-41 centos7] ps -ef |grep python
root 1425 1 0 13:37 ? 00:00:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root 18405 2880 0 14:07 pts/0 00:00:00 python -m SimpleHTTPServer 81
root 18407 2880 0 14:07 pts/0 00:00:00 grep --color=auto python
在浏览器上测试
5,添加新的rpm包
[root@ c7-41 centos7] yumdownloader pcre-devel openssl-devel # 只下载软件不安装
[root@ c7-41 centos7] createrepo --update /yum/centos7/ # 每加入一个rpm包就要更新一下
6,在主机B 客户端上配置yum
[root@ c7-42 ~] mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.ori
[root@ c7-42 ~] cat >/etc/yum.repos.d/centos7.repo<<EOF[centos7]name=Serverbaseurl=http://10.0.0.41:81enable=1gpgcheck=0EOF
7,临时使用指定的自己指定的centos7 库
[root@ c7-42 ~] yum --enablerepo=centos7 --disablerepo=base,extras,updates,epel list
[root@ c7-42 ~] sed -i -e '19a enabled=0' -e '29a enabled=0' -e '39a enabled=0' /etc/yum.repos.d/CentOS-Base.repo #添加永久使用
#注释/etc/resolv.conf
[root@ c7-42 ~] vim /etc/resolv.conf
[root@ c7-42 ~] cat /etc/resolv.conf
#nameserver 223.5.5.5
#nameserver 223.6.6.6
[root@ c7-42 ~] ping qq.com
ping: qq.com: Name or service not known
8,服务端安装nginx或者找nginx相关rpm,找到nginx所有的相关rpm
[root@ c7-41 ~] yum -y install nginx
#找到nginx所有的相关rpm
[root@ c7-41 ~] cd /var/cache/yum/x86_64/7/
[root@ c7-41 7] find . -name '*.rpm'
./base/packages/deltarpm-3.6-3.el7.x86_64.rpm
./base/packages/createrepo-0.9.9-28.el7.noarch.rpm
./base/packages/python-chardet-2.2.1-3.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/yum-utils-1.1.31-52.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-all-modules-1.16.1-1.el7.noarch.rpm
./epel/packages/nginx-1.16.1-1.el7.x86_64.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
9,将找到的nginx相关rpm包添加到自己创建的yum仓库
[root@ c7-41 7] find . -name '*.rpm'|xargs -i cp {} /yum/centos7
[root@ c7-41 7] cd /yum/centos7/
[root@ c7-41 centos7] createrepo --update /yum/centos7/ #更新自己的yum仓库
10,在主机B 客户端上重新加载yum缓存并下载nginx
[root@ c7-42 ~] yum clean all #清除缓存
[root@ c7-42 ~] yum makecache #重新加载
[root@ c7-42 ~] yum -y install nginx #安装nginx
[root@ c7-42 nginx] pwd
/usr/share/nginx #yum安装nginx默认路径
应用场景
在项目实施过程中,很多实施单位存在没有外网的情况。此时,在服务器上直接使用Yum命令根本无法使用,为了方便在本地搭建环境,为了方便快捷安装软件依赖包,我们采用临时解决方案进行本地Yum仓库搭建,不但可以供搭建机器使用,更可以供整个服务器群使用。