如何使用setuptools为linux创建rpm包

时间:2017-11-30 14:02:35

标签: python linux rpm

我想为我的软件构建一个rpm包。我只熟悉使用linux的rpmbuild工具与spec文件和源目录的经典方法。但我在distutils的文档中读到它可以以某种方式创建RPM包。 Setuptools基于distutils所以我猜它也有一些构建rpm的过程。 虽然我从来没有实际使用这两个模块中的任何一个,但我一直认为他们构建了自己的独立软件包。

我有两个问题。首先是从setuptools创建rpm的确切步骤是什么。其次是,这种方式比rpmbuild实用程序更有条理吗?

到目前为止我在互联网上研究的内容 -

  1. Setuptools主要用于创建“wheel”包。它类似于其他软件包,如rpm或deb,除了linux不会像RPM一样直接理解它。
  2. 需要在构建过程中传递bdist_rpm标志以创建rpm包。(link
  3. 我对构建和分发包的概念感到困惑。需要一些解释我在setuptools和rpm之间理解错误。

1 个答案:

答案 0 :(得分:0)

如何直接从setup.py http://jeromebelleman.gitlab.io/posts/devops/setuppy/使用bdist构建RPM包 请注意,此方法很简单,只能生成RPM包。例如,您不能在元数据中放置需求(或构建需求),您必须记住始终将它们放在命令行上。

我会说bdist仅适用于初始工作。如果您想发货并支持它,那么创建SPEC文件是必须的。

另一个示例 - AFAIK您无法使用bdist和setup.py指定%post%pre scriptlet。

以下是python SPEC文件的示例:https://fedoraproject.org/wiki/Packaging:Python#Example_common_spec_file