开始吧。我有一个本地 deb 存储库。它工作正常。但每次我更新软件时都会出现警告“您即将安装无法验证的软件”。我决定对我的本地存储库进行签名。我的存储库结构:
/var/www/deb/repo/deb/dists/stable/main/soft_1.0.0-0_amd64.deb
/var/www/deb/repo/deb/dists/stable/main/binary-amd64/Packages.gz
我创建了一个 gpg 密钥并将其导入到我的 repo 服务器和 ubuntu 上。我还在每个 binary-amd64 和 binary-i386 中创建了一个 Release 文件。之后,我计算了校验和并签署了我的存储库。
apt-ftparchive release dists/stable/main/binary-amd64 >> dists/stable/main/binary-amd64/Release
gpg -abs -o dists/stable/main/binary-amd64/Release.gpg dists/stable/main/binary-amd64/Release
签名后,我的存储库中出现了新文件
/var/www/deb/repo/deb/dists/stable/main/binary-amd64/Release
/var/www/deb/repo/deb/dists/stable/main/binary-amd64/Release.gpg
发布文件:
Archive: stable
Suite: stable
Component: main
Origin: mySoft
Label: soft-deb-repo
Architecture amd64
Date: Tue, 08 May 2012 14:36:57 UTC
MD5Sum:
4fd2fb417d39f3eb7e02c742817e3c35 464 Packages.gz
f49b96b059c8df343c8903563cfd55f2 109 Release
SHA1:
a2cf6872ae378f9239b5427d06258fb99cd2657f 464 Packages.gz
c4476d3c036d5373855c2fd7dc61cd7882dd7546 109 Release
SHA256:
229ffd0eaaf41591827b410fa329c98211fe33cdf658726645f6f25e09edce07 464 Packages.gz
5b446e696c9bb94515d97f345bc96a231fa8bc9e9f213e6aa15e4431d2f2e160 109 Release
以及 Release.gpg:
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iJwEAAECAAYFAk+pL5IACgkQ7SiVqDm0LdIIdAP/VNdCZc+y6ZBDR3NKUbYR5mmz
EE1hkKlKyumHBbYipgoEES5+iSAoq83Pr7TWH3/kCm19Z6DoMYdQd2tD10NdJxPo
CQ3QOEezPUbWzKUELujhpnL/ljUnbJBe5dv8/tHPlLizt2r5OmJct+GVUvWviFMY
pA7CS7wlLIhTNE3q/7I=
=lURJ
-----END PGP SIGNATURE-----
但问题并没有消失——当我通过软件包管理器检查更新时,它说我的软件无法通过身份验证。Aptitude 说警告:将安装以下软件包的不受信任的版本。我做错了什么?
答案1
我必须创建一个 InRelease 文件来解决身份验证问题。我通过阅读手册页中的 apt-secure 解决了这个问题。我还必须创建一个 Packages 文件(已解压)。以下是两个命令:
gpg --clearsign -o InRelease Release
gpg -abs -o Release.gpg Release
我的目录结构和文件看起来像这样,以帮助您更好地理解我在做什么。
shift@shift-VirtualBox:~/shiftRepo$ ls -R
.:
dists shiftCPEKey
./dists:
stable
./dists/stable:
main
./dists/stable/main:
binary
./dists/stable/main/binary:
CPEDataCollector_1.0+SNAPSHOT.deb CPEQueueConsumer_1.0+SNAPSHOT.deb Packages Release
CPEQueueBroker_1.0+SNAPSHOT.deb InRelease Packages.gz Release.gpg