Всем привет
Подскажите как без костылей выполнить скрипт при удалении своего пакета? При установке выполняется единтсвенный в слако-пакете скрипт doinst.sh. Предположим что он "гадит" в некоторые системные файлы и нужно чтобы при удалении этого пакета он подчистил за собой. В rpm для этого целый набор скриптов, а как быть в слаке?. Не могу ничего путного найти, либо неправильно ищу.
Uninstall script (Выполнить скрипт при удалении пакета)
Модератор: Модераторы разделов
Re: Uninstall script
ОК, уточню суть проблемы.
Устанавливаемый пакет - это демон, который должен стартовать при загрузке системы. Сею фишку можно реализовать в родном для слаки BSD-стиле, но для этого нужно сделать запись непосредственно в стартовых скриптах и при удалении пакета как-то удалить эту запись (в теме собственно изложено). Ещё можно использовать совместимость с System V и накидать симлинков на стартовый скрипт софтины в соответствующие каталоги. Но тогда вопрос в корректности размещения симлинков в пакете. Ведь не зря в man makepkg написано что по умолчанию он игнорирует симлинки в собираемом каталоге и это рекомендуется. А если делать симлинки с помощью doinst.sh, то удалить их при удалении пакета как и в первом случае не получится, а если размещать непосредственно в пакете, то фиг его знает насколько это корректно будет работать. Как их тогда нужно делать чтобы разместить в пакете и они правильно работали?
Устанавливаемый пакет - это демон, который должен стартовать при загрузке системы. Сею фишку можно реализовать в родном для слаки BSD-стиле, но для этого нужно сделать запись непосредственно в стартовых скриптах и при удалении пакета как-то удалить эту запись (в теме собственно изложено). Ещё можно использовать совместимость с System V и накидать симлинков на стартовый скрипт софтины в соответствующие каталоги. Но тогда вопрос в корректности размещения симлинков в пакете. Ведь не зря в man makepkg написано что по умолчанию он игнорирует симлинки в собираемом каталоге и это рекомендуется. А если делать симлинки с помощью doinst.sh, то удалить их при удалении пакета как и в первом случае не получится, а если размещать непосредственно в пакете, то фиг его знает насколько это корректно будет работать. Как их тогда нужно делать чтобы разместить в пакете и они правильно работали?
Re: Uninstall script
... достаточно почитать less /sbin/removepkg, чтобы перестать беспокоиться именно об этом случае.
Или ещё более стандартно: включить в пакет /etc/rc.d/rc.daemon и написать в документации про то, что нужно сделать его исполняемым и добавить в стартовый скрипт (например, /etc/rc.d/rc.local)
if [ -x /etc/rc.d/rc.daemon ] ; then
/etc/rc.d/rc.daemon
fi
Точнее, размещать симлинки нужно в каталоге пакета перед его сборкой, но makepkg -l y ... добавит их в doinst.sh в нужном виде, а removepkg приберёт при удалении пакета.
Там похожими словами написано совсем другое.
То есть, существующие ссылки будут помещены в doinst.sh. Если только такое поведение не будет отменено при помощи ключа -l n.If symbolic links exist, they will be converted to script code to recreate them when the package is installed. This code will be appended to the primary installation script ( install/doinst.sh ) , or, if that script does not exist it will be created with those contents.
Спасибо сказали: