我使用 Nagios 测试来检查某些 Linux 机器中是否有任何软件包关键更新。 check 命令使用以下命令来查找挂起的关键更新:/usr/bin/apt-get -o 'Debug::NoLocking=true' -s -qq upgrade
,即以非零状态退出。因此,Nagios 检查显示警告。
如果我手动运行该命令,我会收到以下消息:
~# /usr/bin/apt-get -o 'Debug::NoLocking=true' -s -qq upgrade
E: Packages were downgraded and -y was used without --allow-downgrades.
但是,我不记得降级过任何软件包。你能帮我摆脱这个警告吗?
最好的祝愿,
答案1
“软件包已降级”并不意味着您降级了软件包,而是意味着apt upgrade
决定需要降级软件包(可能是因为您的 pin 优先级为 1000 或更高)。
真正的解决办法是避免最终陷入apt
需要降级的情况,但我意识到这不是重点。
-qq
意味着-y
,但这里你还需要--allow-downgrades
:
apt-get -o 'Debug::NoLocking=true' -s -qq --allow-downgrades upgrade
降级需要额外确认。
(一般情况下应该避免这种情况,但由于该-s
选项apt
只要求模拟它会做什么,所以在这里是可以的。)