dpkg не может удалить символическую ссылку

dpkg не может удалить символическую ссылку

У меня есть следующий скрипт postint в пакете 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

Это дерево каталогов до установки:

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

Когда я пытаюсь установить пакет deb, он пытается удалить каталог, на который указывает символическая ссылка, а не ПРОСТО СИМЛИК:

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

Когда я запускаю rm -fкоманду вручную, она работает так, как и ожидалось, но что происходит, когда выполняется postinst, что он изменяет эту команду на что-то другое, что пытается удалить каталог, на который указывает символическая ссылка, а не только саму символическую ссылку?

Есть идеи? Спасибо.

решение1

Это сообщение об ошибке не появляется ни в одной из команд в postinst.

Вы не дали много информации, но я предполагаю, что когда вы пытаетесь установить пакет deb, в системе уже есть старая версия пакета. В этом случае dpkg попытается очистить старую версию перед установкой новой. Ожидалось, что /SOMEDIRECTORY/releases/OLD_RELEASESHAв этот момент она будет пустой, поскольку в других пакетах нет файлов, поэтому он попытался удалить ее, но тамбылинекоторые файлы в нем, не принадлежащие ни одному пакету. Это нормально, просто это не ожидается, поэтому dpkg выводит предупреждение.

Связанный контент