distutils setup.py和%post%postun

时间:2009-09-10 18:47:47

标签: python distutils rpm specifications

我是新手。 我正在为我自己的应用程序建立rpm包,并决定使用distutils来实现它。我设法通过使用本网站的建议创建了一些%post的替代品,我真的很感激,但我遇到了%postun的问题。 让我来描述我所做的。在setup.py中,我运行命令,创建运行应用程序所需的符号链接。它运作良好,但问题是当我想删除rpm,链接停留在那里。所以我想我应该在spec文件中使用%postun。我的问题是:有没有办法在setup.py中执行此操作或者我是否必须手动编辑spec文件? 请告诉或指出一些手册或任何东西。 谢谢

2 个答案:

答案 0 :(得分:2)

是的,您可以指定一个安装后脚本,您只需要在选项arg中的bdist_rpm中声明您要使用的文件:

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

在post_uninstall文件中,输入你需要删除链接的代码,有些想法如下:

rm -f /var/lib/mylink

答案 1 :(得分:0)

distutils和setuptools都没有卸载功能。

在某些时候,python社区同意卸载应由包装系统处理。在这种情况下,你想使用rpm,所以rpm系统内部可能有一种方法可以删除包,但你不会在distutils或setuptools中找到它。

@ pycon2009,有一个关于distutils和setuptools的演示文稿。你可以在这里找到所有的视频

Eggs and Buildout Deployment in Python - Part 1

Eggs and Buildout Deployment in Python - Part 2

Eggs and Buildout Deployment in Python - Part 3

有一个名为How to Build Applications Linux Distributions will Package的视频。我没有看到它,但它似乎是合适的。