dpkg kann einen symbolischen Link nicht löschen

dpkg kann einen symbolischen Link nicht löschen

Ich habe das folgende Postint-Skript im Dpkg-Paket:

rm -f /SOMEDIRECTORY/current
ln -s /SOMEDIRECTORY/releases/RELEASESHA /SOMEDIRECTORY/current
ln -s /SOMEDIRECTORY/shared/config/config.json /SOMEDIRECTORY/releases/RELEASESHA/config/config.json

Dies ist ein Verzeichnisbaum vor der Installation:

drwxr-xr-x 2 user user 4096 May 12 15:21 config
drwxr-xr-x 3 user user 4096 May 14 08:56 shared
drwxr-xr-x 6 user user 4096 May 14 10:06 releases
lrwxrwxrwx 1 root          root            49 May 14 10:14 current -> /SOMEDIRECTORY/releases/RELEASESHA

Wenn ich versuche, das Deb-Paket zu installieren, versucht es, ein Verzeichnis zu entfernen, auf das der symbolische Link verweist, und nicht NUR DEN SYMLINK:

dpkg: warning: unable to delete old directory '/SOMEDIRECTORY/releases/OLD_RELEASESHA': Directory not empty

Wenn ich den rm -fBefehl manuell ausführe, funktioniert er wie erwartet. Aber was passiert, wenn „postinst“ ausgeführt wird, das den Befehl in etwas anderes ändert? Was versucht, das Verzeichnis zu entfernen, auf das der symbolische Link verweist, und nicht nur den symbolischen Link selbst?

Irgendjemand eine Idee? Danke

Antwort1

Diese Fehlermeldung stammt nicht von Befehlen in der Postinstallation.

Sie haben nicht viele Informationen gegeben, aber ich vermute, dass beim Versuch, das Deb-Paket zu installieren, bereits eine ältere Version des Pakets auf dem System vorhanden ist. In diesem Fall würde dpkg versuchen, die alte Version zu löschen, bevor die neue installiert wird. Es ging davon aus, dass es /SOMEDIRECTORY/releases/OLD_RELEASESHAzu diesem Zeitpunkt leer sein würde, da keine anderen Pakete Dateien darin haben, also versuchte es, es zu entfernen, aber es gabwareinige Dateien darin, die keinem Paket gehören. Das ist in Ordnung, es wird nur nicht erwartet, daher gibt dpkg eine Warnung aus.

verwandte Informationen