使用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