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