Когда я пытаюсь удалить 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
Теперь посмотрите на вывод выше, чтобы определить значение инода выбранного файла, который показан в самом левом столбце... допустим, 6561977 - это значение инода для файла, который вы хотите удалить... затем, чтобы удалить этот файл, укажите, используя его инод, как указано ниже.
find . -maxdepth 1 -type f -inum 6561977 -delete
выше замените 6561977 на фактическое показанное значение inode... обратите внимание, что первый параметр find
команды — это каталог действия... здесь мы указали точку, которая указывает на текущий каталог, что нормально, поскольку мы дали cd
команду перейти в родительский каталог рассматриваемого файла.
ls -la -i # list directory again to confirm file has been zapped