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

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#

答え1

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

これを修正する適切な方法は、スクリプトが失敗する理由を確認することです。

/etc/init.d/gdm3 stop

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

醜いハック

根本的な問題が(自分で)解決できない場合は、次の簡単な修正でうまくいくかもしれません。

まず、それがもう実行されていないことを確認しますgdm3(最後の手段として、それを強制終了することもできます)。

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

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

注記: これは本当に醜いハックです。init.d スクリプトが実行する必要がある可能性のあるクリーンアップを回避します。注意してください。

関連情報