Wenn ich versuche, es zu entfernen linux-raspi-headers-5.4.0-1032
, um es zu aktualisieren, dpkg
wird ein seltsamer Fehler angezeigt, dass der Dateiname zu lang ist:
(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
Wie komme ich darüber hinweg?
Antwort1
Im Großen und Ganzen wird hier zuerst der Inode der Datei angezeigt, die wir löschen möchten. Dann geben wir diesen Inode an, wenn wir den Löschbefehl ausführen.
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
Schauen Sie sich nun die Ausgabe von oben an, um den Inode-Wert der ausgewählten Datei zu ermitteln, der in der Spalte ganz links angezeigt wird. Nehmen wir an, 6561977 ist der Inode-Wert für die Datei, die Sie löschen möchten. Um diese Datei zu löschen, geben Sie dann ihren Inode an.
find . -maxdepth 1 -type f -inum 6561977 -delete
Ersetzen Sie oben 6561977 durch den tatsächlich angezeigten Inode-Wert. Beachten Sie, dass der erste Parameter des find
Befehls das Aktionsverzeichnis ist. Hier haben wir einen Punkt eingegeben, der das aktuelle Verzeichnis angibt. Das ist in Ordnung, da wir den cd
Befehl eingegeben haben, um in das übergeordnete Verzeichnis der betreffenden Datei zu gelangen.
ls -la -i # list directory again to confirm file has been zapped