搭建 apt 仓库
文章发布时间:
最后更新时间:
最后更新时间:
目标
手里有几个包,想搭建一个 apt 仓库,对应发行版为 Debian unstable riscv64
思路
这里的 server 指的是提供 apt 仓库服务的机器,client 指的是要访问 apt 仓库的机器
- (server) 为本机生成 GPG 公钥与私钥
- (server) 使用 aptly 添加包,并生成仓库的 snapshot
- (server) 使用 nginx 搭建私有的服务器,存放生成的 snapshot
- (client) 添加公钥,修改 apt 配置
步骤
1. 生成 gpg-key
生成签名用的 GPG KEY
运行命令:gpg --full-gen-key
,按照提示操作。
~/.gnupg/openpgp-revocs.d/
目录下生成.rev
的 key 文件
生成 ASCII 格式的公钥
gpg --output <key_filename> --export <your_email>
请确保<your_email>
与生成私钥时所用的邮箱相同
2. 使用 aptly 添加包,并生成仓库的 snapshot
安装 aptly 后,创建仓库,本步骤执行后将生成~/.aptly
目录
1 |
|
向仓库内添加若干包,本步骤执行后将在~/.aptly/pool
目录下存放所添加包的拷贝
1 |
|
创建仓库 snapshot 并发布,此过程会要求使用 GPG 私钥签名,所以会提示输入生成 GPG 私钥时的密码
发布后的仓库在~/.aptly/pool
1 |
|
3. 搭建服务器
使用 nginx 搭建文件服务器,使得外部网络可以访问仓库内容
1 |
|
4. 在 client 端访问 apt 仓库
注意,服务器我们已经搭建好了,接下来的操作在客户端上进行
将前文中的公钥添加至本机配置,TODO:使用 DEB-822 格式,添加
1 |
|
在 apt 配置中写入如下一行
1 |
|
已知问题
TODO
- 需要对 aptly 进行进一步的解释
- 需要对 gpg 签名的原理进行进一步的解释