与所选操作无关,dpkg
挂在我的 Raspberry Pi 2 上。它会冻结整个机器,但例如,如果htop
已在另一个窗口中打开,它会继续工作。
我尝试了大多数命令,例如dpkg --configure -a
,我不想重置整个系统。该strace
日志对于 Pastebin 来说太长了,但它以两行结束了数千次。
pselect6(16, [0 13 15], NULL, NULL, {tv_sec=0, tv_nsec=50000000}, {[], 8}) = 0 (Timeout)
wait4(3278, 0x7ea6c884, WNOHANG, NULL) = 0
有人可以帮忙吗?
答案1
您的 dpkg 正在等待子进程。从它可以看出它是在 wait4() 系统调用中。不是他挂起,而是一个子进程挂起,可能是配置脚本挂起。
检查发生了什么
pstree -pa
并追踪这个。作为一名优秀的 Linux 用户,我认为您也可以巧妙地使用 lsof 命令。 Strace 还有一个 -f 标志,用它你也可以跟踪子进程。
手动修复配置脚本也很有用,以便可以清除坏包。
您尝试使用的大多数 dpkg/apt 命令可能会尝试配置系统上当前未配置的软件包,这就是为什么您总是遇到这个错误或有错误的配置脚本。
你的 syslogd 正在运行吗?有时,配置脚本调用的工具无法接受它不可用的事实。
配置脚本位于 /var/lib/dpkg/info 中。我只是默默地说,如果你发现一个特别蹩脚的,直接删除作为修补程序会更容易,但我真的很沉默。