古いカーネルパッケージの削除中にエラーが発生しました。

古いカーネルパッケージの削除中にエラーが発生しました。

今日、私はDebian Stretchから古いカーネルを削除しようとしました。

sudo aptitude purge linux-image-4.9.0-3-amd64 

このプロセスはほとんどのサーバーでスムーズに動作し、長年にわたって進行してきましたが、今回は2つのサーバーで次のエラーが発生しました。

Failed to substitute package name in title: 10 at /usr/bin/linux-check-removal line 102, < STDIN> line 1.
dpkg: error processing package linux-image-4.9.0-3-amd64 (--remove):
subprocess installed pre-removal script returned error exit status 255
Errors were encountered while processing:
linux-image-4.9.0-3-amd64
E: Sub-process  /usr/bin/dpkg returned an error code (1)

使用

sudo dpkg --purge linux-image-4.9.0-3-amd64

同様のメッセージも返されます。

このパッケージに対して削除/クリーンアップコマンドを繰り返しようとすると、常にこのエラーが発生します。

どうすれば削除できますか?

答え1

/usr/bin/linux-check-removal回避策の調査中にこれがPerlスクリプトであることがわかりましたman

linux-check-removal - カーネルを削除しても安全であることを確認します。

要約。
Linuxの削除されたバージョンを確認する

説明する。
linux-check-removalは、Linuxカーネルパッケージのprermメンテナンススクリプトから呼び出されるように設計されています。

最終的に0(成功)を返すようにスクリプトを変更し、パッケージを削除してから

sudo aptitude purge linux-image-4.9.0-3-amd64

作業が終わったら、スクリプトを復元します。

スクリプトの最後に適用した一時修正は次のとおりです。

# replace check() call with exit with success code
# check(@ARGV);
exit 0;

関連情報