0

0

如何创建Linux本地软件仓库 搭建私有yum/apt源

P粉602998670

P粉602998670

发布时间:2025-07-17 09:17:02

|

683人浏览过

|

来源于php中文网

原创

创建linux本地软件仓库可解决无外网环境下软件安装与管理问题。核心步骤包括:1.搭建yum源时需准备rpm包、安装createrepo工具、创建目录结构并生成元数据,最后配置客户端yum源文件;2.搭建apt源则需收集deb包、安装dpkg-dev工具、构建仓库结构、生成packages文件,并配置客户端apt源;3.注意事项包括权限设置、仓库更新、签名检查、web服务选择及架构一致性。通过本地仓库可实现高效统一的软件版本管理并节省带宽。

如何创建Linux本地软件仓库 搭建私有yum/apt源

创建Linux本地软件仓库,主要是为了在没有外网或网络受限的环境中方便地安装和管理软件包。不管是yum源(针对CentOS/RHEL)还是apt源(针对Ubuntu/Debian),核心思路都是将软件包集中存放,并生成对应的元数据供系统识别。

如何创建Linux本地软件仓库 搭建私有yum/apt源

这篇文章会以比较实用的角度,讲清楚怎么搭建私有yum源和apt源,适合运维、测试环境或者离线部署场景使用。


一、为什么需要本地仓库

在很多企业内部网络中,服务器是不能直接访问互联网的,这就导致无法通过在线方式安装软件包。这时候,建立一个本地仓库就能解决这个问题。

如何创建Linux本地软件仓库 搭建私有yum/apt源
  • 提高效率:不用一台一台手动拷贝rpm/deb文件。
  • 统一版本控制:确保所有机器安装的是同一版本的软件。
  • 节省带宽:尤其在批量部署时,从本地源拉取比从公网下载快得多。

二、搭建本地yum源(适用于CentOS/RHEL)

如果你用的是CentOS或RHEL系统,yum源是最常见的选择。下面是基本步骤:

准备工作

  • 收集好你要加入仓库的所有rpm包。
  • 安装 createrepo 工具(通常可以通过 yum install createrepo 安装)。

创建仓库目录结构

一般放在 /var/www/html/repos/centos7/x86_64 这样的路径下,根据你的系统架构来定。

如何创建Linux本地软件仓库 搭建私有yum/apt源
mkdir -p /var/www/html/repos/centos7/x86_64/Packages
cp your_packages/*.rpm /var/www/html/repos/centos7/x86_64/Packages/

生成元数据

进入仓库目录,执行:

cd /var/www/html/repos/centos7/x86_64
createrepo .

这一步会在当前目录生成 .repodata 文件夹,里面就是yum能识别的数据。

配置客户端yum源文件

在目标主机上创建 /etc/yum.repos.d/local.repo 文件,内容如下:

磁力开创
磁力开创

快手推出的一站式AI视频生产平台

下载
[local-repo]
name=Local Repository
baseurl=http://your-local-server/repos/centos7/x86_64
enabled=1
gpgcheck=0

替换 your-local-server 为你的仓库服务器IP或域名。


三、搭建本地apt源(适用于Ubuntu/Debian)

对于Ubuntu或Debian系统,你需要使用 dpkg-scanpackages 或更高级的工具如 reprepro 来构建仓库。

准备工作

  • 收集deb包。
  • 安装 dpkg-dev(提供扫描工具):
sudo apt install dpkg-dev

创建仓库结构

同样建议放在web服务目录下,比如 /var/www/html/repos/ubuntu/focal/main/binary-amd64

mkdir -p /var/www/html/repos/ubuntu/focal/main/binary-amd64
cp *.deb /var/www/html/repos/ubuntu/focal/main/binary-amd64/

生成Packages文件

进入该目录执行:

cd /var/www/html/repos/ubuntu/focal/main/binary-amd64
dpkg-scanpackages . > ../../../../dists/focal/main/binary-amd64/Packages

你可能还需要手动创建 Release 文件,但如果是小规模私有仓库,也可以先跳过。

配置客户端apt源

在目标机器添加源:

echo "deb http://your-local-server/repos/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/local.list
sudo apt update

四、注意事项和常见问题

  • 权限问题:确保web服务用户对仓库目录有读取权限。
  • 更新仓库:每次新增rpm/deb包后,记得重新运行 createrepodpkg-scanpackages
  • 签名检查:生产环境建议开启gpg验证,但在内网测试环境下可以关闭(gpgcheck=0)。
  • Web服务:推荐用nginx或Apache作为仓库服务,轻量级的话也可以用 python3 -m http.server 快速起一个临时服务。
  • 架构一致性:注意区分x86_64和aarch64等不同架构,不要混在一起。

总的来说,搭建本地仓库并不复杂,关键是要理解仓库结构和配置方法。一旦建好,后续维护和扩展都很方便。基本上就这些操作了,不难但容易忽略细节,尤其是路径和元数据生成部分。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

230

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

499

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

498

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

227

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

333

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3508

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号