我意识到了安全隐患,也理解了为什么 apt-key 被弃用。但就我的使用情况而言,我并不关心。
我想要运行:
$ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CC116F55AA7F2382
没有任何警告。但我看到:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CC116F55AA7F2382
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.KVaQ390iTM/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CC116F55AA7F2382 /dev/null
gpg: "/dev/null" not a key ID: skipping
gpg: key CC116F55AA7F2382: "Icinga GmbH (Build server) <[email protected]>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
如何强制不输出 stdout 和警告?我只想看到实际发生的错误的输出。(我知道该脚本在已经知道密钥的系统上运行,因为我之前已经运行过它。)
我试过:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CC116F55AA7F2382 > /dev/null
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CC116F55AA7F2382 2>&1 > /dev/null
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CC116F55AA7F2382 2>&1 /dev/null
只要您了解使用弃用功能的含义。
通过apt的源代码,似乎您可以使用
APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE
环境变量通过赋予其任意值来禁用警告。如果您还想删除信息消息,您可以传递
-q
标志来隐藏以 开头的行gpg:
。要完全静音,请将输出重定向到
/dev/null
错误仍会按照您的要求显示(从命令的键中删除一个字符):