![如何创建“签名”的 deb 包](https://linux22.com/image/876257/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E2%80%9C%E7%AD%BE%E5%90%8D%E2%80%9D%E7%9A%84%20deb%20%E5%8C%85.png)
我想创建一些 deb 包,但我不知道“签名”包是如何工作的。所以我想知道如何创建签名的 deb 包。
答案1
Ubuntu/Debian 系统上的软件包签名相当麻烦。理论上,对 deb 软件包进行签名可以让接收软件包的人验证软件包在您签名后是否被修改。实际上,签名验证非常难以设置,默认情况下处于禁用状态。除非用户在本地进行大量设置,否则他们不会在安装软件包时验证签名。
为了对软件包进行签名,您可以使用:debsigs 或 dpkg-sig。这两个签名彼此不兼容,因此您需要确保用户在接收端使用正确的工具来验证签名。
dpkg-sig 对于您和用户来说都更容易使用,但 debsigs 是 Ubuntu 和 Debian 上具有内置支持(默认情况下禁用)的工具。
我写了一篇博客文章,其中包含签署和验证源包(.dsc 文件)、二进制包(.deb)以及 APT 包存储库本身的所有技术细节:http://blog.packagecloud.io/eng/2014/10/28/howto-gpg-sign-verify-deb-packages-apt-repositories/
答案2
Debian/Ubuntu 上的软件包签名通常通过 .changes 文件完成。构建软件包时,您往往会得到一个 .changes 文件,其中列出了构建的结果(源和/或二进制软件包)及其校验和,当您对软件包进行签名时,这通常是您签名的文件(因此可以通过其校验和验证软件包的完整性)。
签署 .changes 文件的最简单方法是使用debsign
debsign hello_1.0_amd64.changes
如果您的 gnupg 钥匙串中有一个主键,并且您在没有和开关的情况下运行dpkg-buildpackage
或,则会自动发生这种情况。debuild
-us
-uc