nginx+createrepo搭建局域网yum源

上传Centos镜像

CentOS-7-x86_64-DVD-2207-02.iso

挂载iso镜像

mkdir -p /mnt/cdrom   #创建挂载目录

mount -o loop CentOS-7-x86_64-DVD-2207-02.iso /mnt/cdrom/

挂载好的目录文件

总用量 698
-rw-rw-r--. 2 root root     14 10月 30 2020 CentOS_BuildTag
drwxr-xr-x. 3 root root   2048 7月  26 22:39 EFI
-rw-rw-r--. 2 root root    227 8月  30 2017 EULA
-rw-rw-r--. 2 root root  18009 12月 10 2015 GPL
drwxr-xr-x. 3 root root   2048 7月  26 22:40 images
drwxr-xr-x. 2 root root   2048 7月  26 22:39 isolinux
drwxr-xr-x. 2 root root   2048 7月  26 22:39 LiveOS
drwxr-xr-x. 2 root root 675840 7月  26 00:51 Packages
drwxr-xr-x. 2 root root   4096 7月  26 00:51 repodata
-rw-rw-r--. 2 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 2 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883 7月  26 23:09 TRANS.TBL

 

配置本地yum源

删除默认repo文件

rm -rf /etc/yum.repos.d/*

vi /etc/yum.repos.d/Centos7.repo 
[Centos7.9]
baseurl = file:///mnt/cdrom
gpgcheck = 0
enabled=1
name = Base Yum Repo

 

编译安装nginx

yum install gcc gcc-c++ pcre pcre-devel openssl openssl-devel -y

上传nginx-1.22.0.tar,解压并编译安装

./configure --user=www --group=www --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf 

此时可用nginx直接配置

cd /etc/nginx/conf.d/
cat local_yum.conf 
server {
listen 99;
server_name 本机IP;
charset utf-8;
location /cdrom
    {
        autoindex on;
        root /mnt/;
    }
}


浏览器访问http://本机IP:99/cdrom

da8945d4d211408ebe656d32a7b85f51.png

使用createrepo实现

yum install -y createrepo

mkdir -p /mnt/nginx-yum
cp -a /mnt/cdrom/Packages/ /mnt/nginx-yum/    # /mnt/cdrom/为只读目录,且不想展示过多内容,需先拷贝出来
cd /mnt/nginx-yum/
ll
总用量 292
drwxr-xr-x. 2 root root 229376 7月  26 00:51 Packages

#执行以下命令,利用挂载目录里的**comps.xml生成repodata,没有该文件将无法成功调用yum

#最终验证  直接拷贝/mnt/cdrom/repodata可直接使用,跟以下命令生成是一样的。这就很尴尬
createrepo -g /mnt/cdrom/repodata/cca56f3cffa18f1e52302dbfcf2f0250a94c8a37acd8347ed6317cb52c8369dc-comps.xml  /mnt/nginx-yum/

...
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete


ll
总用量 296
drwxr-xr-x. 2 root root 229376 7月  26 00:51 Packages
drwxr-xr-x. 2 root root   4096 11月 24 17:01 repodata

 

cd /etc/nginx/conf.d/
cat yum.conf 
server {
listen 88;
server_name 本机IP;
charset utf-8;
location /nginx-yum
    {
        autoindex on;
        root /mnt/;
    }
}

 


浏览器访问http://本机IP:88/nginx-yum

4e765f71c00346fcb965f2dfd5a57f3c.png

配置局域网yum源

cat /etc/yum.repos.d/Centos7.repo 
[Centos7.9]
baseurl = http://本地IP:88/nginx-yum/
enabled=1
gpgcheck = 0
name = Base Yum Repo

yum clean all
已加载插件:fastestmirror
正在清理软件源: Centos7.9
Cleaning up list of fastest mirrors
Other repos take up 18 M of disk space (use --verbose for details)

yum makecache
已加载插件:fastestmirror
Determining fastest mirrors
Centos7.9                                                                                                                    | 3.0 kB  00:00:00     
(1/3): Centos7.9/filelists_db                                                                                                | 3.3 MB  00:00:00     
(2/3): Centos7.9/primary_db                                                                                                  | 3.3 MB  00:00:00     
(3/3): Centos7.9/other_db                                                                                                    | 1.3 MB  00:00:00     
元数据缓存已建立

 

原挂载的镜像此时也可以卸载,不影响使用

umount /mnt/cdrom/
rm -rf /mnt/cdrom/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!要基于Nginx搭建私有yum源,可以按照以下步骤进行操作: 1. 首先,确保您的服务器上已经安装了Nginx。可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install nginx ``` 2. 创建一个目录用于存放yum仓库的文件。可以使用以下命令创建目录: ``` sudo mkdir -p /var/www/html/yumrepo ``` 3. 将您的yum仓库文件复制到该目录下。您可以通过将本地的yum仓库文件上传到服务器,或者直接使用rsync等命令将其复制到目标目录。 4. 配置Nginx以提供访问私有yum源。打开Nginx的配置文件(通常位于/etc/nginx/nginx.conf)并进行相应的修改,添加以下配置: ``` server { listen 80; server_name localhost; location / { root /var/www/html/yumrepo; autoindex on; autoindex_exact_size off; autoindex_localtime on; } } ``` 5. 保存并关闭配置文件,然后重新启动Nginx服务: ``` sudo systemctl restart nginx ``` 6. 现在,您可以在客户端机器上通过访问服务器的IP地址或域名来使用私有yum源了。例如,可以使用以下命令添加私有yum源: ``` sudo vi /etc/yum.repos.d/private.repo ``` 在该文件中添加以下内容: ``` [private] name=Private Yum Repo baseurl=http://<nginx服务器的IP地址或域名>/ enabled=1 gpgcheck=0 ``` 保存并关闭该文件。 现在,您就成功地基于Nginx搭建了私有yum源。您可以使用客户端机器上的yum命令来安装、更新或删除软件包了。 希望对您有帮助!如有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值