4

我是新手。我正在为自己的应用程序构建 rpm 包,并决定使用 distutils 来实现它。我通过使用该网站的建议设法创建了一些 %post 的替代品,我真的很感激,但我遇到了 %postun 的问题。让我描述一下我做了什么。在 setup.py 中,我运行创建运行应用程序所需的符号链接的命令。它工作得很好,但问题是当我想删除 rpm 时,链接仍然存在。所以我认为我应该在规范文件中使用 %postun 。我的问题是:有没有办法在 setup.py 中做到这一点,还是我必须手动编辑规范文件?请建议或指出一些手册或任何东西。谢谢

4

2 回答 2

2

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

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

在 post_uninstall 文件中,输入您需要删除链接的代码,例如:

rm -f /var/lib/mylink
于 2009-10-02T11:46:13.597 回答
0

distutils 和 setuptools 都没有卸载功能。

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

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

Python 中的 Eggs 和 Buildout 部署 - 第 1 部分

Python 中的 Eggs 和 Buildout 部署 - 第 2 部分

Python 中的 Eggs 和 Buildout 部署 - 第 3 部分

有一个视频叫做How to Build Applications Linux Distributions will Package。没看过,不过好像很合适。

于 2009-09-24T16:09:08.830 回答