前言

离线环境安装软件比较繁琐,像nginx,需要使用源码编译,各种配置。在局域网内搭建私有yum源,可以使局域网内所有服务器使用yum命令快速安装软件,节省大量运维工作。

源文件制作一次即可,其他内网环境配置私有yum源,直接从第3章开始看。

服务器环境

CPU: 飞腾 arm64,即aarch64
系统:Kylin v10 sp2

在这里插入图片描述

1 拉取官方的repo数据

在可以访问公网的服务器上查看其默认的repo配置文件

vim /etc/yum.repos.d/kylin_aarch64.repo

可以看到麒麟官方的yum软件下载地址和默认的仓库标识,可以看到启用的仓库有两个,分别是ks10-adv-os和ks10-adv-updates

在这里插入图片描述

在这里插入图片描述

如果拉取源文件的服务器和准备使用该yum源的服务器系统和CPU架构都相同,就不需要改什么,如果不同,baseurl就需要改成对应的地址,例如我们在x86的服务器上下载arm的,就需要改为“https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/aarch64/”

我们只需要下载ks10-adv-os对应的base仓库即可满足一般使用,updates的仓库文件太多太大,有需要的话可以下载使用。

创建源文件存储的目录

mkdir -p /data/repo

执行命令指定repoid为ks10-adv-os下载其对应的源文件

reposync --repoid ks10-adv-os -p /data/repo/

执行上述命令会出现如下界面

在这里插入图片描述

等待软件同步完毕,在/data/repo路径下可以看到自动创建了/ks10-adv-os/文件夹,里面的/Packages/文件夹下就是下载的软件包文件

在这里插入图片描述

2 生成对应的repodata元数据

同步完毕后安装createrepo组件,这个是用来创建仓库元数据的

yum install -y createrepo

为repo仓库数据生成对应的repodata元数据,其中-o指定repodata元数据存储的路径,-v指定软件包所在路径

createrepo -o /data/repo/ks10-adv-os/ -v /data/repo/ks10-adv-os/Packages/

生成完成后,在/ks10-adv-os/文件夹下可以看到生成的/repodata/文件夹,里面是生成的元数据

在这里插入图片描述

在这里插入图片描述

在后续使用中,提示文件校验失败,下载文件http://ip:port/ks10-adv-os/packages/xxx失败等问题,因此,我们把/Packages/下的所有文件移动到/ks10-adv-os/下

mv /data/repo/ks10-adv-os/Packages/* /data/repo/ks10-adv-os/

压缩文件

tar -zcvf ks10-adv-base.tar.gz ks10-adv-base/

3 在内网服务器配置本地yum源仓库

3.1 上传准备好的源文件

在内网服务器创建/data/repo/目录

mkdir -p /data/repo

将压缩好的源文件上传到内网服务器的/data/repo/目录下,解压

tar -zxvf ks10-adv-base.tar.gz

在这里插入图片描述

3.2 配置本地源

把刚才拷贝到内网的文件夹配置为本地软件源
修改服务器yum源配置文件

vim /etc/yum.repos.d/kylin_aarch64.repo
###Kylin Linux Advanced Server 10 - os repo###
[ks10-adv-os.repo]
name=ks10-adv-os.repo
baseurl=file:///data/repo/ks10-adv-os/
enabled=1
gpgcheck=0

清理yum缓存

yum clean all

创建新的缓存

yum makecache

查看当前的yum源配置,看看是不是我们配置的yum源

yum repolist

4 发布yum源服务

可以使用httpd或者nginx发布yum源服务,这样局域网内其他服务器才可以从私有yum源下载安装包。

4.1 使用httpd发布yum源

安装httpd服务用于发布yum源

yum install -y httpd

配置httpd服务

mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/repo.conf

repo.conf文件内容修改

修改端口为80,修改Servername为本机的IP地址,修改DocumentRoot为源文件的根目录 /data/repo,Directory设置 为源文件的根目录 /data/repo

<VirtualHost *:80>
      Servername 192.168.16.106--本机的IP地址
      DocumentRoot /data/repo--存放软件的目录
<Directory /data/repo>
Require all granted
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>

文件设置完成后重启httpd并设置开机启动

systemctl restart httpd && systemctl enable httpd

放开防火墙限制(如果关闭防火墙,则不用设置)

[root@yum-harbor ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@yum-harbor ~]# firewall-cmd --reload
success

出现success表示防火墙设置成功。
此时浏览器访问http://192.168.16.106,可以看到我们的yum源仓库,即发布成功

在这里插入图片描述

4.2 使用nginx发布yum源

安装nginx服务用于发布yum源

yum install -y nginx

在这里插入图片描述

修改nginx配置文件

vim /etc/nginx/nginx.conf

增加如下server配置

server {
    listen 81;
    server_name _;
    charset utf-8,gbk;
    location / {
        root /data/repo;
        autoindex on;
        autoindex_localtime on;
        autoindex_exact_size off;
    }
 
    error_page 404 /404.html;
        location = /40x.html {
    }
 
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

在这里插入图片描述

此时浏览器访问http://192.168.16.106:81,可以看到我们的yum源仓库,即发布成功(服务器防火墙没关的话需要开放端口)

在这里插入图片描述

5 在其他服务器上配置使用私有yum源

修改服务器yum源配置文件

vim /etc/yum.repos.d/kylin_aarch64.repo
[ks10-adv-os]
name = Kylin-base - Os
baseurl = http://192.168.16.106/ks10-adv-base/
gpgcheck = 0
enabled = 1

在这里插入图片描述

清理yum缓存

yum clean all

创建新的缓存

yum makecache

查看当前的yum源配置,看看是不是我们配置的yum源

yum repolist

在这里插入图片描述

此时,即可使用yum命令愉快的安装软件了,可以看到,我们安装的软件以及所有依赖都来自我们的私有yum源

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐