乐于分享
好东西不私藏

银河麒麟没网也能装软件?自己在电脑里搭个“软件应用商店”就行(APT、YUM本地软件源保姆级教程来了)

银河麒麟没网也能装软件?自己在电脑里搭个“软件应用商店”就行(APT、YUM本地软件源保姆级教程来了)

国产化替代在金融、政务、能源等领域正加速落地,越来越多的服务器从传统Linux迁移到了银河麒麟操作系统。但不少国产系统用户接手后会发现一个很头疼的问题——内网物理隔离,没办法apt install或yum install在线装软件,依赖包一个叠一个,手动找包找到崩溃,同时也有很多朋友私信我赶紧出一个搭建本地内网源的教程。别急,搭建一个内网的APT、YUM源,就能让内网所有机器像连了外网一样丝滑安装软件。今天手把手教你,一次搭好,一劳永逸。

先搞清楚:你的系统是APT还是YUM?

很多新手上来就乱套命令,结果报错一脸懵。银河麒麟桌面版用的是APT源(Debian系),服务器版用的是YUM源(RPM系) 。记住这个原则,后面所有操作都围绕它展开。

银河麒麟桌面版(apt /deb)内网本地源搭建

银河麒麟桌面版走的是APT体系,配置APT源核心就是修改/etc/apt/sources.list这个文件。系统更新时会读这个文件里的源地址,无论是公网源还是内网源,原理是一样的。

挂载

挂载之前需要根据自己的系统版本准备对应版本 ISO。

# 创建挂载目录sudo mkdir -p /mnt/kylin-isosudo mount -o loop ~/Kylin-Desktop-V10-SP1-2503-Release-20250430-x86_64.iso /mnt/kylin-iso

挂载完成之后,先看 ISO 里真实的目录名 ,之后好配置本地源访问路径:

ls /mnt/kylin-iso/dists/

配置本地源

sudo tee /etc/apt/sources.list <<EOFdeb [trusted=yes] file:///mnt/kylin-iso/ v101 main restricted universe multiverseEOF

使本地源生效

sudo  apt update

验证你的本地源是否安装完成:能列出大量软件包

sudo apt list | head -20

本地源安装软件包验证

我以安装基础编译环境包build-essential为例,可以发现访问的源地址就是我们本地的源文件路径:

银河麒麟服务器版(yum /rpm)内网本地源搭建

服务器版银河麒麟配置YUM源,核心是修改 /etc/yum.repos.d 目录下的 .repo 文件。

系统环境

创建挂载点并挂载ISO

mkdir -p /mnt/kylin-isomount -o loop ~/Kylin-Server-V10-SP3-2403-Release-20240426-X86_64.iso /mnt/kylin-iso

创建本地源配置文件

# 备份系统自带的源文件 mv /etc/yum.repos.d/kylin_x86_64.repo /etc/yum.repos.d/kylin_x86_64.repo.bak tee /etc/yum.repos.d/local-iso.repo <<EOF[kylin-iso]name=Kylin Local ISObaseurl=file:///mnt/kylin-isoenabled=1gpgcheck=0priority=1EOF

本地源生效

yum clean allyum makecache

安装软件包验证本地源

网页访问http内网源

用Nginx发布HTTP内网源

本地源配好之后,只有一个电脑主机能用。想让内网所有机器都能访问,需要配一个HTTP服务,这里比较推荐Nginx——轻量、并发性能好、配置简单。

安装 nginx  

下面我说的是在线命令行安装的方式,如果是内网环境的,可以参考我之前文章有写如何离线下载软件包进行内网环境安装。

# 银河麒麟桌面操作系统sudo apt install -y nginx# 银河麒麟服务器操作系统sudo yum install -y nginx

创建源目录,把 ISO 内容拷贝过去

源目录权限确保可访问

sudo chmod -R 755 /var/www/html/kylin

nginx配置

以下是我的nginx配置,可以进行参考,多说一句配置完成nginx之后记得开启防火墙端口。

user  root;worker_processes  1;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;    server {        listen       80;        server_name  localhost;        root /var/www/html;        autoindex on;        autoindex_exact_size off;        autoindex_localtime on;        location / {            allow all;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}

配置http源的访问客户端

客户端配置也很简单:APT系统的机器修改/etc/apt/sources.list,把源地址替换成http://你的服务器IP/; YUM系统的机器修改.repo文件,把baseurl 指向同样的HTTP地址。之后内网所有服务器就可以像在公网一样用包管理工具一键安装了。

安装软件包验证http内网源

避坑指南

直接说一下几个容易踩的坑:

  • 架构匹配是个大坑。 银河麒麟支持x86_64、ARM64、LoongArch等多种架构,包的baseurl和镜像必须与服务器CPU架构严格对应,ARM的包装不到x86上,用错了安装时直接就失败。
  • 元数据生成是关键。 YUM仓库必须有 reodata 目录,不然yum会报repomd.xml not found 。挂载ISO时ISO自带repodata,但如果你手动复制RPM包,必须用 createrepo 重新生成,而且每次新增包后都要执行createrepo --update。
  • 路径别写错。 baseurl格式写错是新手最常见的错误——file:后面是三个斜杠,http:后面是两个斜杠,而且路径大小写必须和实际目录完全一致。
  • 别忘备份。 不管是改 sources.list 还是 .repo 文件,修改前一定先备份原文件。配置错了还能快速恢复,否则排查半天才发现是配置文件格式问题,真的非常浪费时间。

写在最后

搭一次本地源确实需要花点时间,但这件事属于“一次投资、长期收益”。对于内网运维来说,本地源不是锦上添花,而是效率刚需。从挂载ISO开始,到用Nginx发布成HTTP内网源,整个过程并不复杂,但能让你告别手动传包和依赖地狱。希望这份经验对大家有帮助!

如果这篇文章对你有帮助,欢迎点赞、收藏、转发,让更多正在用国产操作系统的朋友知道!你的支持是我更新分享的最大动力!

👨‍💻关于博主:大家好,我是码农拿铁,专注分享IT热点、资源干货和系统技巧:带你玩转 🪟 Windows | 🐧 国产信创Linux | 🍎 macOS | 📱 iOS ,让你的设备更好用!👇 点击关注,下次找我不迷路!