我在我的 vps 上安装了 gdm,现在我想删除它,但出现此错误:
root@server2:/etc/init.d# apt-get remove gdm3
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
gdm3
0 upgraded, 0 newly installed, 1 to remove and 6 not upgraded.
After this operation, 7066 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 119416 files and directories currently installed.)
Removing gdm3 ...
invoke-rc.d: initscript gdm3, action "stop" failed.
dpkg: error processing gdm3 (--remove):
subprocess installed pre-removal script returned error exit status 127
configured to not write apport reports
invoke-rc.d: initscript gdm3, action "reload" failed.
Errors were encountered while processing:
gdm3
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@server2:/etc/init.d#
答案1
删除包时,会运行一些清理脚本。似乎其中之一失败(即/etc/init.d/gdm3
),导致卸载不完整。
解决此问题的正确方法是检查脚本失败的原因。尝试跑步
/etc/init.d/gdm3 stop
手动,看看失败的原因。修复根本错误,然后尝试再次卸载。
一个丑陋的黑客
如果根本问题(由您自己)无法修复,则通过以下简单修复可能会更幸运:
首先确保它gdm3
不再运行(作为最后的手段,你可能会杀死它)。
然后将该行添加exit 0
到文件的开头/etc/init.d/gdm3
(有时在 shebang 之后,但在脚本实际执行任何操作之前;例如 line#2)。这实际上会禁用该脚本并使其假装总是成功。
最后重新运行卸载。
笔记:这是一个非常丑陋的黑客,因为它绕过了 init.d 脚本可能需要执行的任何清理。被警告。