# 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

#可以看到基本上是秒安裝的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM