dpkg no puede eliminar un enlace simbólico

dpkg no puede eliminar un enlace simbólico

Tengo el siguiente script postint en el paquete dpkg:

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

Este es un árbol de directorios antes de la instalación:

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

Cuando intento instalar el paquete deb, intento eliminar un directorio al que apunta el enlace simbólico en lugar de SOLO EL ENLACE SIMPLE:

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

Cuando ejecuto el rm -fcomando manualmente, funciona como se esperaba, pero ¿qué sucede cuando se ejecuta postinst y cambia ese comando a otra cosa? ¿Qué está tratando de eliminar el directorio al que apunta el enlace simbólico y no solo el enlace simbólico en sí?

¿Alguien tiene idea? Gracias

Respuesta1

Ese mensaje de error no proviene de ningún comando en postinst.

No ha proporcionado mucha información, pero supongo que cuando intenta instalar el paquete deb, ya existe una versión anterior del paquete en el sistema. En ese caso, dpkg intentaría borrar la versión anterior antes de instalar la nueva. Esperaba /SOMEDIRECTORY/releases/OLD_RELEASESHAestar vacío en ese momento, ya que ningún otro paquete tiene archivos allí, por lo que intentó eliminarlo, pero noeranalgunos archivos que contiene, no tienen propiedad de ningún paquete. Esto está bien, simplemente no es lo esperado, por lo que dpkg genera una advertencia.

información relacionada