Raspberry Pi でパッケージを削除できません - ファイル名が長すぎます

Raspberry Pi でパッケージを削除できません - ファイル名が長すぎます

linux-raspi-headers-5.4.0-1032アップグレードするために削除しようとすると、dpkgファイル名が長すぎるという奇妙なエラーが発生します。

(Reading database ... 237046 files and directories currently installed.)
Removing linux-raspi-headers-5.4.0-1032 (5.4.0-1032.35) ...
dpkg: error processing package linux-raspi-headers-5.4.0-1032 (--purge):
 unable to securely remove '/usr/src/linux-raspi-headers-5.4.0-1032/arch/arm/include/asm/mach/p��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������': File name too long
Errors were encountered while processing:
 linux-raspi-headers-5.4.0-1032

どうすればこれを乗り越えられるでしょうか?

答え1

ここでの全体像は、まず削除したいファイルのinodeを表示し、次に削除コマンドを実行するときにそのinodeを指定することです。

sudo -i  #  become root to remove root owned file

#   get into dir of file we wish to delete
cd /usr/src/linux-raspi-headers-5.4.0-1032/arch/arm/include/asm/mach/

ls -la -i # parm -i says to show inode values 

次に、上記の出力を見て、左端の列に表示されている選択したファイルのinode値を確認します... 6561977が削除したいファイルのinode値であるとします...そのファイルを削除するには、次のようにinodeを使用して指定します。

find . -maxdepth 1 -type f -inum    6561977 -delete

上記では、6561977 を実際の inode 値に置き換えます... コマンドの最初のパラメータがアクションのディレクトリであることに注意してください... ここでは、現在のディレクトリを示すピリオドを指定しましたが、問題のファイルの親ディレクトリに入るコマンドをfind発行したので問題ありません。cd

ls -la -i #  list directory again to confirm file has been zapped

関連情報