centos 7.4 离线安装nginx资源服务器,搭建yum源repo文件服务器

centos搭建HTTP离线yum源

文章目录

    • centos搭建HTTP离线yum源
      • 1. 安装nginx 开启80端口
      • 2. rsync 同步官方提供的yum源
      • 3. 【可选】更新自己的rpm包或者第三方的rpm包
      • 4. 搭建完毕

本文针对无法联网机器,私有yum源搭建的教程。首先下载所需rpm包,如果您可以提供网络环境,请使用yum安装,避免出现包依赖导致的错误。

1. 安装nginx 开启80端口

安装nginx,选择编译安装

  • 首先安装基础软件 rpm包

    rpm -ivh --replacefiles --replacepkgs \
        cpp-4.8.5-16.el7_4.2.x86_64.rpm \
        glibc-common-2.17-196.el7_4.2.x86_64.rpm \
        glibc-2.17-196.el7_4.2.x86_64.rpm \
        glibc-devel-2.17-196.el7_4.2.x86_64.rpm \
        glibc-headers-2.17-196.el7_4.2.x86_64.rpm \
        libgcc-4.8.5-16.el7_4.2.x86_64.rpm \
        libgomp-4.8.5-16.el7_4.2.x86_64.rpm \
        gcc-4.8.5-16.el7_4.2.x86_64.rpm \
        libstdc++-4.8.5-16.el7_4.2.x86_64.rpm \
        libstdc++-devel-4.8.5-16.el7_4.2.x86_64.rpm \
        gcc-c++-4.8.5-16.el7_4.2.x86_64.rpm \
        kernel-headers-3.10.0-693.21.1.el7.x86_64.rpm \
        keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm \
        libselinux-devel-2.5-11.el7.x86_64.rpm \
        krb5-devel-1.15.1-8.el7.x86_64.rpm \
        libcom_err-devel-1.42.9-10.el7.x86_64.rpm \
        libkadm5-1.15.1-8.el7.x86_64.rpm \
        libmpc-1.0.1-3.el7.x86_64.rpm \
        libselinux-devel-2.5-11.el7.x86_64.rpm \
        libsepol-devel-2.5-6.el7.x86_64.rpm \
        libverto-devel-0.2.5-4.el7.x86_64.rpm \
        mpfr-3.1.1-4.el7.x86_64.rpm \
        openssl-devel-1.0.2k-8.el7.x86_64.rpm \
        pcre-devel-8.32-17.el7.x86_64.rpm \
        zlib-devel-1.2.7-17.el7.x86_64.rpm
    
  • 下载nginx源码github nginx release,解压到当前目录,这里举例版本号V1.15.5

    NGINX_VERSION=1.15.5
    tar -zxf ./nginx-$NGINX_VERSION.tar.gz -C ./
    

    进入解压后的目录:
    cd nginx-$NGINX_VERSION
    执行编译命令:

    ./configure \
    --prefix=/usr/local/nginx
    make && make install
    

    在系统目录建立 nginx 二进制执行文件软连接
    ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
    拷贝 nginx.conf 文件到nginx编译后的安装目录
    cp nginx.conf /usr/local/nginx/conf/nginx.conf
    nginx.conf文件内容如下:

       #user  nobody;
       worker_processes  1;
    
       #error_log  logs/error.log;
       #error_log  logs/error.log  notice;
       #error_log  logs/error.log  info;
    
       #pid        logs/nginx.pid;
    
       events {
       	worker_connections  1024;
       }
       http {
       	include       mime.types;
       	default_type  application/octet-stream;
    
       	#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
       	#                  '$status $body_bytes_sent "$http_referer" '
       	#                  '"$http_user_agent" "$http_x_forwarded_for"';
    
       	#access_log  logs/access.log  main;
    
       	sendfile        on;
       	#tcp_nopush     on;
    
       	#keepalive_timeout  0;
       	keepalive_timeout  65;
    
       	#gzip  on;
    
       	server {
       		listen       80;  # 监听 80 端口,按需求也可以配置一个前台服务器作子域名转发
       		# index index.html default.html; # 默认首页文件
       		root  /var/www/file;   #文件服务器的根路径
    
       		autoindex on;
       		autoindex_exact_size on;
       		autoindex_localtime on;
    
       		charset utf-8;
    
       		# 这里配置拒绝访问的目录或文件
       		location ~ (repos) 
       		{
       			deny all;
       		}
    
       		 # 静态文件的过期时间,可以不需要此配置
       		location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
       		{
       			expires      30d;
       		}
    
       		# 静态文件的过期时间,可以不需要此配置
       		location ~ .*\.(js|css)?$
       		{
       			expires      12h;
       		}
       	}
    
       }
    

    创建资源服务器的文件路径:mkdir -p /var/www/file/因为nginx.conf文件中设置的路径为该路径。
    启动nginx
    /usr/local/nginx/sbin/nginx
    访问 http://IP:80/ 试试

2. rsync 同步官方提供的yum源

  • :我们选择了上海大学开源镜像站,进行同步。
    备选镜像站(该站点必须支持sync协议):
    中国科学技术大学开源软件镜像
    Centos官方

  • 同步 centos 里的内容到本地,有些文件不需要同步下载,需要排除,将这些需要排除的文件列在exclude_repo.cnf中:

    cat exclude_repo.cnf 
    atomic
    cloud
    configmanagement
    updates/x86_64/drpms
    cr
    centosplus
    dotnet
    opstools
    fasttrack
    isos
    nfv
    paas
    rt
    sclo
    storage
    virt
    

    然后,同步centos7的repo文件到本地 /var/www/file/centos/7/

    mkdir -p /var/www/file/centos/7
    rsync -av --exclude-from=exclude_repo.cnf rsync://mirrors.shu.edu.cn/centos/7/   /var/www/file/centos/7/
    
  • 同步epel里的内容到本地,排除debug文件夹

    mkdir -p /var/www/file/epel/7/x86_64/
    rsync -av --exclude=debug rsync://mirrors.shu.edu.cn/epel/7/x86_64/  /var/www/file/epel/7/x86_64/```
    
  • 同步docker里的内容到本地

    mkdir -p /var/www/file/docker-ce/linux/centos/7/x86_64/
    rsync -av rsync://mirrors.shu.edu.cn/docker-ce/linux/centos/7/x86_64/ /var/www/file/docker-ce/linux/centos/7/x86_64/
    

3. 【可选】更新自己的rpm包或者第三方的rpm包

如果你自己有编译好的包,或者从第三方下载的rpm包需要放入到搭建的私有yum源中,可以按以下步骤进行操作
将自己的rpm包放入/var/www/file/centos/7/os/x86_64/Packages/文件夹内,然后更新repodata文件

$ yum install -y createrepo

$ createrepo -pdo /var/www/file/centos/7/os/x86_64 /var/www/file/centos/7/os/x86_64

在安装第三方rpm包时,可能会报错 Public key for xxx.rpm is not installed:
解决方法:
把 repo文件设置为gpgcheck=0
使用yum install 时加上参数–nogpgcheck

4. 搭建完毕

资源目录 /var/www/file/

  ├── centos
  │   └── 7
  │       ├── extras
  │       ├── os
  │       └── updates
  ├── docker-ce
  │   └── linux
  │       └── centos
  └── epel
      └── 7
          └── x86_64

centos 7.4 离线安装nginx资源服务器,搭建yum源repo文件服务器_第1张图片

你可能感兴趣的:(CentOs,nginx,私有yum源)