使用reprepro工具创建仓库,托管自己编译生成的deb软件包。

准备工作

安装reprepro工具

apt-get install reprepro

创建用于仓库存储的目录

mkdir /srv/repos
cd /srv/repos

创建用于签名的GPG证书

创建证书:

gpg --full-gen-key

导出公钥:

gpg --list-secret-key --with-subkey-fingerprint
gpg --export <your-hash> > simaek.noarmor.gpg

编写必要的配置文件

mkdir conf && touch conf/{options,distributions}

distributions

Origin: Bookworm
Label: Bookworm
Suite: stable
Codename: bookworm
Architectures: amd64 source
Components: main contrib non-free
Description: Debian Extra Packages
Log: bookworm.log
SignWith: xueye404@foxmail.com

Origin: Bullseye
Label: Bullseye
Suite: oldstable
Codename: bullseye
Architectures: amd64 source
Components: main contrib non-free
Description: Debian Extra Packages
Log: bullseye.log
SignWith: xueye404@foxmail.com
这里我只创建了两个仓库,对应两个发行版,过于陈旧的发行版没有必要再支持了。
SignWith可以使用邮箱也可以使用keyid。

options

verbose
noskipold
basedir /root/debian
morguedir +o/old-versions
options提供全局配置,这样后续使用reprepro进行包管理的时候会更加方便一些。

添加第一个包

reprepro -C main includedeb bookworm xxx_1.0.0+dfsg-1+b1_amd64.deb

后续

使用apache或者nginx将dist、pool等目录共享。

添加仓库

在需要使用的机器上添加仓库,使用DEB822格式(Bookworm开始的默认格式)。

导入公钥:

curl -fsSL https://dl.simaek.com/debian-extra/simaek.noarmor.gpg | tee /usr/share/keyrings/simaek-archive-keyring.gpg >/dev/null

添加仓库:

/etc/apt/source.lists.d/simaek.sources

Types: deb
URIs: https://dl.simaek.com/debian-extra/
Suites: bookworm
Components: main contrib non-free
Signed-By: /usr/share/keyrings/simaek-archive-keyring.gpg

安装测试:

apt-get update
apt-get install xxx

参考文档:

SetupWithReprepro
creating-a-debian-package-repository-for-distributing-multiple-versions-of-a-cus

最后修改:2024 年 02 月 27 日
如果觉得我的文章对你有用,请随意赞赏