# 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 ~]#

https://www.cnblogs.com/hypj/p/14022793.html

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  #将数据保存到指定目录中,

索引信息:

BFBLDI`NE_J6.png

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页面访问

image.png

服务器安装

[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

#可以看到基本上是秒安装的
posted @ 2020-10-01 12:20  HSping  阅读(862)  评论(0编辑  收藏  举报