我正在自动化我的Docker安装.像这样的东西:
if apt-key fingerprint 0EBFCD88 | grep "Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88" > /dev/null
then
# proceed
fi
Run Code Online (Sandbox Code Playgroud)
这在旧版本中运行良好apt-key,但最近的版本有两个问题:
一个警告:
Warning: apt-key output should not be parsed (stdout is not a terminal)
Run Code Online (Sandbox Code Playgroud)显然,我也可以解决这个问题,只需重定向stderr即可/dev/null.这让我很好奇:
这些好人如何建议我验证我的关键指纹?或者我想通过自动化来解决这个根本错误,这是否会破坏这一点?(我想不是,因为我仍然手动从网站上取消了预期的指纹,但随时可以告诉我......)
小智 22
从apt-key源,您可以设置APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE为非空值以禁用此警告.
您也可以使用"grep -q",因此您无需重定向stdout /dev/null.
回复“我是否从根本上理解错误”部分:
我相信可能是的。这就是警告的原因。
您没有准确地写下您所做的事情,但需要意识到的一件事是:
密钥确实有一定的过期时间,因此一段时间后脚本中的指纹将变得过时,并且可能不再按预期运行。
安装存储库及其密钥后,系统会以某种方式自动升级密钥,但在最初添加存储库时,必须提供最新的密钥。在我的自动化安装脚本中,我不测试是否已添加密钥,但测试是否已添加存储库。如果未添加存储库,那么我会将其与始终从其 URL 下载的最新密钥一起添加。
| 归档时间: |
|
| 查看次数: |
16418 次 |
| 最近记录: |