2009-09-10 48 views
4

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

回答

2

是的,你可以指定一个安装后脚本,你需要的是在bdist_rpm宣布在选项精氨酸的文件要使用:

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

在post_uninstall文件,把他的代码,你需要删除链接,有点像这样:

rm -f /var/lib/mylink 
+0

非常感谢你,照顾我打算做的事情。 – MichalKlich 2009-10-05 18:41:55

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视频。我没有看到它,但似乎是合适的。

+0

谢谢,我一定会看这些视频。 – MichalKlich 2009-10-05 18:43:55