Я новичок. Я создаю пакет rpm для своего собственного приложения и решил использовать distutils для его достижения. Мне удалось создать замену %post, воспользовавшись советом с этого сайта, за что я очень благодарен, но у меня проблемы с %postun. Позвольте мне описать, что я сделал. В setup.py я запускаю команду, которая создает символическую ссылку, необходимую для запуска приложения. Это работает хорошо, но проблема в том, что когда я хочу удалить rpm, ссылка остается там. Итак, я решил, что должен использовать %postun в файле спецификаций. Мой вопрос: есть ли способ сделать это в setup.py или мне нужно вручную редактировать файл спецификации? Пожалуйста, посоветуйте или укажите мне какие-нибудь руководства или что-нибудь. Спасибо
distutils setup.py и %post %postun
Ответы (2)
Да, вы можете указать сценарий после установки, все, что вам нужно, это объявить в bdist_rpm в параметрах arg файл, который вы хотите использовать:
setup(
...
options = {'bdist_rpm':{'post_install' : 'post_install',
'post_uninstall' : 'post_uninstall'}},
...)
В файле post_uninstall поместите код, необходимый для удаления ссылки, например:
rm -f /var/lib/mylink
Ни distutils, ни setuptools не имеют функции удаления.
В какой-то момент сообщество Python согласилось с тем, что удаление должно выполняться системой упаковки. В этом случае вы хотите использовать rpm, так что, возможно, внутри системы rpm есть способ удалить пакеты, но вы не найдете его в distutils или setuptools.
@pycon2009, была презентация по distutils и setuptools. Все видео вы можете найти здесь
Яйца и развертывание сборки в Python — часть 1
Яйца и развертывание сборки в Python — часть 2
Яйца и развертывание Buildout в Python — часть 3
Существует видео под названием Как создавать приложения, которые будут упакованы в дистрибутивы Linux. Не видел, но вроде подходит.