我试图通过以下方式将 Debian 10/KDE 升级到 Debian 11 bullseye stablesudo apt upgrade --without-new-pkgs
输出是:
Preparing to unpack .../dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) over (19) ...
Setting up aide-common (0.17.3-4) ...
Replacing config file /etc/cron.daily/aide with new version
cp: cannot remove '/etc/cron.daily/aide': Operation not permitted
dpkg: error processing package aide-common (--configure):
installed aide-common package post-installation script subprocess returned error exit status 1
Setting up dh-autoreconf (20) ...
Processing triggers for man-db (2.8.5-2) ...
Errors were encountered while processing:
aide-common
Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /bin/which
E: Sub-process /usr/bin/dpkg returned an error code (1)
E: Problem executing scripts DPkg::Post-Invoke 'if [ -x /usr/bin/rkhunter ] && grep -qiE '^APT_AUTOGEN=.?(true|yes)' /etc/default/rkhunter; then /usr/share/rkhunter/scripts/rkhupd.sh; fi'
E: Sub-process returned an error code
然后我删除了 aide ( sudo apt-get remove aide
) 并再次尝试,安装后显示如下:
Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /bin/which
E: Problem executing scripts DPkg::Post-Invoke 'if [ -x /usr/bin/rkhunter ] && grep -qiE '^APT_AUTOGEN=.?(true|yes)' /etc/default/rkhunter; then /usr/share/rkhunter/scripts/rkhupd.sh; fi'
E: Sub-process returned an error code
然后我再次尝试,但现在unattended-upgr
正在运行,在进程管理器中运行“结束进程”或向其发送 KILL 信号后,等待一段时间后它不会退出(即使现在它只是一个而不是两个无人值守的升级程序)过程)。
它似乎已经基本完成了lsb_release -a
返回版本:11。
这些错误是否有问题,或者我应该重新启动才能解决它?如果是这样,难道不应该出现一些需要重新启动的消息(或者更好的错误消息)吗?
答案1
您遇到了问题rkhunter
,跟踪为Debian 错误 #932594。
简而言之,rkhunter.conf
的路径与您的系统的路径不匹配。您需要编辑它以修复以下路径which
:
sed -i s,SCRIPTWHITELIST=/bin/which,SCRIPTWHITELIST=/usr/bin/which, /etc/rkhunter.conf
要停止unattended-upgrade
,请杀死它
killall -9 unattended-upgrade
然后查找任何杂散apt
或dpkg
相关的进程,如果它们没有在合理的时间内退出,则也将其杀死。
答案2
你有猎头者安装并配置为每次使用 apt 进行操作时运行。编辑rkhunter.conf
并查看是否SCRIPTWHITELIST
设置为/bin/which
。那里会有多个条目。将其更改为正确的路径which
。或者,您可以在每次执行 apt 时删除 rkhunter 的运行。
答案3
egrep
和的位置fgrep
似乎已从/usr/bin
移至/bin
。让事情顺利进行的最简单的事情就是到旧位置的符号链接
sudo ln -s /bin/egrep /usr/bin/egrep
sudo ln -s /bin/fgrep /usr/bin/fgrep
然后它就能够解决这个SCRIPTWHITELIST
问题。