distutils setup.py и %post %postun

Я новичок. Я создаю пакет rpm для своего собственного приложения и решил использовать distutils для его достижения. Мне удалось создать замену %post, воспользовавшись советом с этого сайта, за что я очень благодарен, но у меня проблемы с %postun. Позвольте мне описать, что я сделал. В setup.py я запускаю команду, которая создает символическую ссылку, необходимую для запуска приложения. Это работает хорошо, но проблема в том, что когда я хочу удалить rpm, ссылка остается там. Итак, я решил, что должен использовать %postun в файле спецификаций. Мой вопрос: есть ли способ сделать это в setup.py или мне нужно вручную редактировать файл спецификации? Пожалуйста, посоветуйте или укажите мне какие-нибудь руководства или что-нибудь. Спасибо


person MichalKlich    schedule 10.09.2009    source источник


Ответы (2)


Да, вы можете указать сценарий после установки, все, что вам нужно, это объявить в bdist_rpm в параметрах arg файл, который вы хотите использовать:

setup(
...
options = {'bdist_rpm':{'post_install' : 'post_install',
                        'post_uninstall' : 'post_uninstall'}},
...)

В файле post_uninstall поместите код, необходимый для удаления ссылки, например:

rm -f /var/lib/mylink
person Antonio Beamud    schedule 02.10.2009
comment
Большое спасибо, это позаботилось о том, что я намеревался сделать. - person MichalKlich; 05.10.2009

Ни distutils, ни setuptools не имеют функции удаления.

В какой-то момент сообщество Python согласилось с тем, что удаление должно выполняться системой упаковки. В этом случае вы хотите использовать rpm, так что, возможно, внутри системы rpm есть способ удалить пакеты, но вы не найдете его в distutils или setuptools.

@pycon2009, была презентация по distutils и setuptools. Все видео вы можете найти здесь

Яйца и развертывание сборки в Python — часть 1

Яйца и развертывание сборки в Python — часть 2

Яйца и развертывание Buildout в Python — часть 3

Существует видео под названием Как создавать приложения, которые будут упакованы в дистрибутивы Linux. Не видел, но вроде подходит.

person Taras Mankovski    schedule 24.09.2009
comment
Спасибо, обязательно посмотрю эти видео. - person MichalKlich; 05.10.2009