distutils setup.py и% post% postun
-
05-07-2019 - |
Вопрос
Я новичок. Я собираю пакет rpm для своего собственного приложения и решил использовать distutils для его достижения. Мне удалось создать некоторую замену% post, используя советы с этого сайта, за что я действительно благодарен, но у меня проблемы с% postun. Позвольте мне описать, что я сделал. В setup.py я запускаю команду, которая создает символическую ссылку, которая необходима для запуска приложения. Это работает хорошо, но проблема в том, когда я хочу удалить rpm, ссылка остается там. Поэтому я решил использовать% postun в spec-файле. Мой вопрос: есть ли способ сделать это в setup.py или мне нужно вручную редактировать файл спецификации? Пожалуйста, посоветуйте или укажите мне некоторые руководства или что-нибудь. Спасибо
Решение
Да, вы можете указать сценарий после установки, все что вам нужно, это объявить в 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
Развертывание яиц и сборка в Python - часть 3
Существует видео под названием Как создавать приложения, которые будут распространяться в дистрибутивах Linux . Я не видел это, но это кажется уместным.