我已经镜像了 Ubuntu 存档存储库(我必须说它相当庞大)。然后,我可以毫无问题地 apt-get install,但它会提示以下警告:
WARNING: The following packages cannot be authenticated!
xxxx, xxxx, ...
Install these packages without verification [y/N]?
嗯,您随时可以安装它。
但是,我无法从 Ubuntu 软件 GUI 安装。这需要可信来源。
所以,
- 如何强制 GUI 安装不受信任的包?
- 我应该配置 GPG 来接收一些公钥吗?(我已经安装了 ubuntu-keyring、debian-keyring,但它仍然不受信任)
- 我是否应该配置 GPG 以自动从某些特定密钥服务器接收未知密钥?
答案1
问题可能是您的 apt 密钥环上没有存储库的密钥,正如 Badger 所说,但我认为这不太可能。如果它确实是 Ubuntu 存储库的镜像,那么它将使用相同的密钥,并且您应该已经拥有必要的密钥。(我假设当您使用标准镜像之一时不会收到此错误。)
因此,这意味着您的镜像可能未正确签名,这可能是因为您没有以正确的方式镜像它。您需要使用特定的顺序,以避免在复制时发生存储库更新时获得不一致的副本。考虑到需要多长时间,这种情况很可能发生,尤其是在初始副本上,而不是刷新时。Debian 推送镜像网页解释了如何使用诸如此类的日常工具来完成此操作rsync
,但最好还是使用诸如此类的专用工具apt-mirror
。
Release
存储库签名的工作方式是, dist 目录中有一个顶级文件(例如dists/lucid
),该文件已签名(Release.gpg
)。它包含所有其他索引文件的哈希值(例如main/binary-i386/Packages
),而这些文件又包含包文件本身的哈希值。因此,如果任何哈希值过期,整个存储库验证都会失败。Debian安全公寓解释细节。
答案2
您可能想看看这个网站:http://popey.com/blog/2006/10/24/Creating_an_Ubuntu_repository_mirror_with_apt-mirror/
当你更新时,你可能会得到如下信息:
W: GPG error: file: edgy-plf Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F120156012B83718
W: GPG error: file: edgy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 31A5F97FED8A569E
W: GPG error: file: edgy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 18B52FE3521A9C7C
您想使用这些键并对每个键执行以下操作:
sudo gpg --keyserver subkeys.pgp.net --recv F120156012B83718
sudo gpg --export --armor F120156012B83718 | sudo apt-key add -
我只是浏览了这篇文章,但我确信这就是你需要的
答案3
您还可以考虑使用缓存 apt 代理(例如约) 而不是完整镜像。这样可以根据需要获取软件包,并保存它们以供将来在同一台机器或另一台机器上重复使用。很少有人真正需要完整镜像,并且需要大量带宽来保持其最新状态,其中大部分将用于您永远不会使用的软件包。