检查来自其他 Debian 版本的源包签名的简单方法

检查来自其他 Debian 版本的源包签名的简单方法

我正在尝试nanomsg从反向移植jessiesqueeze。但是当我运行:

dget http://http.debian.net/debian/pool/main/n/nanomsg/nanomsg_0.4~beta+dfsg-3.dsc

它说:

dscverify: nanomsg_0.4~beta+dfsg-3.dsc failed signature check:
gpg: Signature made Fri 29 Aug 2014 09:49:58 PM EEST using RSA key ID 864CC8BF
gpg: Can't check signature: public key not found
Validation FAILED!!

我看到有人建议debian-keyring从该特定版本安装,方法是将相应的行添加到sources.listAPT::Default-Release "stable";apt.conf。但我担心它会用来自其他版本的软件包污染我的系统。

如果我们在这里讨论squeeze。我不能放进stableapt.conf,可以吗?因为现在stablejessie。如果我放在squeeze那里,这是升级时不要忘记的另一件事debian

如果我可以安全地debian-keyring从中下载jessie并添加keyring /path/to/debian-keyring.gpg~/.gnupg/gpg.conf(或环境DSCVERIFY_KEYRINGS?)来使其工作。这可能吗?我该如何解决这个问题?

答案1

您可以轻松地从 jessie 下载 debian-keyring 包,然后使用 进行安装dpkg -i debian-keyring*deb。但是,该方法有缺点:

  • 没有自动更新
  • 无 gpg 验证

如果您想要这些,则需要使用 apt 来安装软件包。使用确实是一种选择;另一个是 apt pinning。创建具有以下内容的APT::Default-Release文件:/etc/apt/preferences.d/99-keyring

Package: debian-keyring
Pin: release n=jessie
Pin-Priority: 600

Package: *
Pin: release n=jessie
Pin-Priority: 50

这将告诉您的系统您想要从 jessie 中提取软件包debian-keyring,但其他所有内容都来自您的正常发行版。如果您不想使用代码名称,而是想使用符号名称,请更改Pin: release n=jessiePin: release a=stable

查看man apt_preferences完整的故事,包括如何APT::Default-Release与所有这些联系起来。

警告:如果使用不当,apt pinning 可能会导致系统在两个版本之间升级到一半。上述示例应该是安全的,但不要将其用于特定于体系结构的软件包。

相关内容