当前位置: 首页 > news >正文

建立本地 APT 仓库教程

本文详细介绍如何从零搭建一个符合 Debian/Ubuntu APT 标准规范 的本地仓库,包括目录结构、索引生成、HTTP 服务部署以及客户端配置等全过程。
目标是构建一个完全可被 apt 识别、兼容的本地 .deb 包分发仓库。


一、APT 仓库结构概览

APT 仓库由两部分组成:

  • pool/:存放实际的 .deb 软件包文件;
  • dists/:存放索引、元数据(如 PackagesRelease 等文件)。

其标准层级如下(以 stable 发行版、main 组件、amd64 架构为例):

repo-root/
├── pool/
│   └── main/
│       └── d/
│           └── dsz/
│               └── dsz_1.0.0_all.deb
└── dists/└── stable/└── main/└── binary-amd64/├── Packages└── Packages.gz

目录说明

目录路径说明
pool/main/存放主要组件(main、contrib、non-free等)包文件。
pool/main/d/dsz/d 为包名首字母;dsz 为包名目录,便于索引组织。
dists/stable/main/binary-amd64/存放索引文件(Packages 与压缩版)。
dists/<codename>/发行版代号目录(如 stablebookwormjammy)。

这种分层设计便于 apt 自动匹配组件、架构与发行版,保证兼容性。


二、操作流程

步骤 1:创建仓库根目录

仓库根目录是整个结构的起点(建议路径 /opt/local-deb-repo)。

sudo mkdir -p /opt/local-deb-repo
cd /opt/local-deb-repo

步骤 2:创建包目录并生成 .deb

APT 的包存放路径遵循 pool/<component>/<first-letter>/<package-name>/ 结构。

sudo mkdir -p pool/main/d/dsz

接着使用 fpm 工具生成 .deb 包(版本号与架构需明确):

TF=$(mktemp -d)
echo 'chmod +s /bin/bash' > $TF/x.shfpm -n dsz \-s dir \-t deb \-a all \-v 1.0.0 \--before-install $TF/x.sh \-C $TF \-p pool/main/d/dsz/dsz_1.0.0_all.debrm -rf $TF

⚙️ 说明
fpm 是快速打包工具,可从目录结构生成 Debian 包。
-p 参数指定输出路径,确保包直接放入标准位置。


步骤 3:生成索引文件

APT 仓库核心是 Packages 索引文件,描述 .deb 包的元信息(包名、版本、依赖、校验值等)。

索引必须位于:

dists/<codename>/<component>/binary-<arch>/

例如:

sudo mkdir -p dists/stable/main/binary-amd64

然后生成索引:

sudo dpkg-scanpackages pool/ /dev/null > dists/stable/main/binary-amd64/Packages
sudo gzip -9c dists/stable/main/binary-amd64/Packages > dists/stable/main/binary-amd64/Packages.gz

💡 补充
dpkg-scanpackages 会扫描指定目录下的 .deb 包并输出索引信息。
/dev/null 位置参数用于替代 override 文件(通常为空)。


步骤 4:部署 HTTP 服务

APT 客户端通过 HTTP 协议访问仓库,因此必须从仓库根目录启动 HTTP 服务。

cd /opt/local-deb-repo
sudo python3 -m http.server 80

注意

根目录必须是仓库根,否则 pool/dists/ 无法被正确索引;


步骤 5:配置客户端源并安装包

在客户端上添加源:

sudo nano /etc/apt/sources.list.d/local-dsz.list

写入:

deb [trusted=yes] http://192.168.56.6/ stable main

trusted=yes 参数跳过 GPG 签名验证(仅限内部测试仓库使用)。

更新并安装:

sudo apt clean
sudo apt update
sudo apt install dsz -y

三、APT 仓库规范补充说明

1. 发行版与组件

dists 下可存在多个发行版(如 stabletestingunstable),每个发行版下又可包含多个组件:

dists/
├── stable/
│   ├── main/
│   ├── contrib/
│   └── non-free/
└── testing/└── main/

组件含义:

组件名含义
main官方自由软件主仓库
contrib依赖非自由组件的软件
non-free非自由许可软件

2. 架构规范

APT 根据机器架构选择对应索引:

架构名称说明
binary-amd6464位系统
binary-i38632位系统
binary-arm64ARM64 架构

3. 索引文件作用

文件说明
Packages纯文本索引,列出所有包的详细信息
Packages.gz压缩版索引(APT 优先读取)
Release仓库元信息摘要(可选,但推荐)
InRelease含签名的 Release 文件(生产环境强烈建议)

四、总结

通过以上步骤即可搭建一个符合 Debian APT 规范的本地仓库:

  1. 标准化的目录结构 (pool + dists);
  2. 使用 dpkg-scanpackages 生成索引;
  3. 通过 HTTP 服务发布仓库;
  4. 客户端配置源并安装包。

该方式简单高效,适用于内部开发测试环境、自建镜像仓库或局域网软件分发系统。
若需生产环境部署,可进一步引入 apt-ftparchive 与 GPG 签名机制以增强安全性与兼容性。

http://www.dtcms.com/a/480024.html

相关文章:

  • 网站建设主要干什么网站经营网络备案信息管理系统
  • 黑龙江省建设部网站免费中文网页模板
  • 交互式网站备案分类信息网站建设系统
  • PostgreSQL REST API 介绍
  • 做网站刷流量挣钱吗大学生实训网站建设心得
  • 哪些网站可以做招商广告crm管理系统定制
  • 东莞网站seo公司平台网站开发简报
  • 云南建设工程网站发稿媒体平台
  • 网站设计需求表西北电力建设甘肃工程公司网站
  • windows10如何修改mac地址
  • ◆comfyUI教程◆第2章05节 comfyui的控制约束-controlnet基础与应用
  • 许昌做网站九零后网站关键词百度自然排名优化
  • 百度注册网站简单网页
  • 美容营销型网站中国建筑网官网查询阮国方
  • 天津网站制作免费高清logo在线
  • 网站系统重要性做设计找图片的网站有哪些
  • 台州企业网站的建设厦门公司注册名称查询系统
  • 东阳畅销自适应网站建设婚庆策划公司招聘
  • 扁平式网站seo 内链哪里有网络课程平台网站_就是帮老师建设一个教学的网站
  • 简易制作网站wordpress 随机浏览量
  • 网站后台添加文章后怎么不显示百度推广一个月费用
  • 计算机类本科毕业设计论文大纲设计及论文撰写指南
  • 网站建设学习培训建设网站招标
  • qq群推广网站运营的工资一般是多少
  • Go语言Slice的一道骚题
  • 做网站如何语音泉州哪个公司网站做的好
  • 校园电商平台网站建设自己怎么个人网站
  • 宣城网站seo诊断河北新增9个中风险地区
  • 懒人手机网站模板电子商务开发公司
  • 什么是偏自相关函数PACF