web-dev-qa-db-ja.com

Gdmのアンインストールが失敗します(「削除前のスクリプトがエラーを返しました」)

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#
2
exim

パッケージを削除すると、いくつかのクリーンアップスクリプトが実行されます。これらのいずれかが失敗し(つまり、/etc/init.d/gdm3)、アンインストールが不完全になっているようです。

これを修正する適切な方法は、スクリプトが失敗する理由を確認することです。実行してみてください

/etc/init.d/gdm3 stop

手動で、失敗する理由を確認してください。根本的なエラーを修正してから、アンインストールを再試行してください。

醜いハック

根本的な問題が(あなたによって)修正できない場合は、次の簡単な修正でもっと運がいいかもしれません:

まず、gdm3が実行されていないことを確認します(最後の手段として、それを強制終了する可能性があります)。

次に、行exit 0/etc/init.d/gdm3ファイルの先頭に追加します(Shebangの後、スクリプトが実際に何かを実行する前、たとえば行#2)。これにより、スクリプトが実質的に無効になり、常に成功するふりができます。

最後に、アンインストールを再実行します。

[〜#〜] note [〜#〜]:init.d-scriptが実行する必要のあるクリーンアップを回避するため、これは本当に醜いハックです。警告されます。

1
umläute