我在我的 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 腳本可能需要執行的任何清理。被警告。