# Nginx---搭建本地YUM仓库
1. 规范目录结构环境
- centos7
- 关闭防火墙 selinux
mkdir /mirror/ #nginx页面站点目录
mkdir /mirror/centos/x86_64/7/packages -p #rpm包存储位置
...
2. 安装搭建Yum仓库的工具包
[root@mirror ~]# yum install -y createrepo
3. 部署yum仓库地址访问环境
配置nginx官方源
cat >/etc/yum.repos.d/nginx.repo<<'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
安装最新nginx
[root@mirror ~]# yum install -y nginx
**
**
配置nginx
cat >/etc/nginx/conf.d/mirror.oldhou.com.conf<<'EOF'
server {
listen 80;
server_name mirror.oldhou.com;
charset utf-8; #设置中文字符集
location / {
root /mirror/;
autoindex on; #打开目录浏览功能
autoindex_exact_size off; #关闭字节显示(会以MB的方式显示)
autoindex_localtime on; #打开会显示文件上传的本地的时间(默认格林威治时间-8h)
}
}
EOF
启动Nginx
[root@mirror ~]# nginx -t
[root@mirror ~]# systemctl start nginx
4. 获取RPM软件
yum install yum-utils
cd /mirror/repo/centos/x86_64/7/packages && yumdownloader --resolve --destdir=./ nginx
下载rpm到指定目录示例
[root@mirror ~]# yumdownloader --resolve --destdir=/mirror/centos/x86_64/7/packages/ zabbix-server-mysql zabbix-web-mysql mariadb-server createrepo yum-utils openvpn easy-rsa git python‐pip mysql‐devel gcc automake autoconf python‐devel vim sshpass lrzsz readline‐devel
其他方案:[root@mirror ~]#
5. 创建递归索引
每次添加rpm包到仓库时都要执行一遍
[root@mirror ~]# cd /mirror/centos/x86_64/7/packages/ #进入rpm包所在的目录
[root@mirror /mirror/centos/x86_64/7/packages~]# createrepo -pdo ./ ./
-p, --pretty
make sure all xml generated is formatted #确认执行命令会生成一个索引文件并定义默认格式
-d, --database
create sqlite database files: now default, see --no-database to disable #创建索引文件相关数据文件信息
-o OUTPUTDIR, --outputdir
OUTPUTDI Roptional directory to output to #将数据保存到指定目录中,
索引信息:
6.客户端配置yum源文件信息
6.1 配置yum源,文件
简易配置yum源
cat >/etc/yum.repos.d/localyum.repo<<'EOF'
[local-centos]
name=Local.os7
baseurl=http://mirror.oldhou.com/centos/x86_64/7/package
enable=1
gpgcheck=0
EOF
查看:
![L\(TR\)BCE7WDB{P46%]YJ_W4.png](https://cdn.nlark.com/yuque/0/2020/png/1581532/1605945579763-795ce4dc-4e68-461f-8952-04c67ff520c9.png)
6.2 内网服务器配置hosts 解析** **
[root@mirror ]# echo "172.16.1.62 mirror.oldhou.com" >>/etc/hosts
查看:
![[[7FAWP}PJ(9{}O61M(~62.png
7. 批量同步仓库的方法
同步整个源至本地 (比较大,谨慎操作)
[root@mirror ]# rsync -avz rsync://rsync.mirrors.ustc.edu.cn/repo/centos/ /mirror/
8.报错处理:
#1. 创建rpm包目录索引时报错:
[root@mirror /mirror/centos/x86_64/7/packages]# createrepo -opd /mirror/ /mirror/
Error: Only one directory allowed per run.
Usage: genpkgmetadata.py [options]
改变参数顺序 -pdo
#2. 安装前可尝试删除yum缓存
yum clean all && yum makecache
#3. 安装某个文件失败
下载的软件需要依赖其他rpm包,如何你关闭了base源和epel源,并且未下载依赖包,将会导致安装失败
效果展示
web页面访问
服务器安装
[root@web01 ~]#ll /etc/yum.repos.d/
total 4
-rw-r--r-- 1 root root 105 Oct 30 02:03 localyum.repo
[root@web01 ~]# time yum install mariadb -y
. . .
Installed:
mariadb.x86_64 1:5.5.65-1.el7
Complete!
real 0m2.098s
user 0m1.650s
sys 0m0.349s
#可以看到基本上是秒安装的