访问量: 472 次浏览
在Windows 10中安装 Debian 13后,先进行软件源更新与升级:
sudo apt update && sudo apt dist-upgrade -y
出现如下问题:
Summary:
Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0
5 not fully installed or removed.
Space needed: 0 B / 17.7 GB available
Setting up systemd (257.9-1~deb13u1) ...
Failed to take /etc/passwd lock: Invalid argument
dpkg: error processing package systemd (--configure):
installed systemd package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of systemd-sysv:
systemd-sysv depends on systemd (= 257.9-1~deb13u1); however:
Package systemd is not configured yet.
systemd-sysv depends on systemd; however:
Package systemd is not configured yet.
dpkg: error processing package systemd-sysv (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
systemd
systemd-sysv
Error: Sub-process /usr/bin/dpkg returned an error code (1)
原因大概为:WSL(尤其是 WSL1)对 Linux 的部分系统功能并不完全支持,像 polkitd 这样的系统服务需要对用户和权限做底层管理,但 WSL 没有完整实现这些机制,因此 polkitd 的 post-installation 脚本会失败。这个问题在 WSL2 也可能出现。
解决方法为在管理员权限下运行如下命令:
cd /bin && mv -f systemd-sysusers{,.org} && ln -s echo systemd-sysusers && cd -
AI说这条命令的作用是: 这条命令把原有的 systemd-sysusers 程序备份为 systemd-sysusers.org。 然后让 systemd-sysusers 变成一个 echo 的软链接(假装 systemd-sysusers 存在,但其实它什么都不做,只输出参数)。 常用于“欺骗”某些安装脚本绕过 systemd 相关校验,或者在不支持 systemd 的环境(如 WSL、Docker 等)防止一些服务安装时报错。
然后运行修复命令:
apt --fix-broken install