如何使用 setuptools 为 linux 创建 rpm 包

How to use setuptools to create rpm packages for linux

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

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

目前我在网上查到的-

  1. Setuptools 主要用于创建"wheel" 包。和rpm、deb等其他包类似,只是linux不会像rpm那样直接理解。
  2. 需要在构建过程中传递 bdist_rpm 标志以创建 rpm 包。(link)

我对构建和分发包的概念很困惑。需要一些关于我对 setuptools 和 rpm 的理解错误的解释。

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

我会说 bdist 只适合初始工作。如果您想发布和支持它,那么必须创建 SPEC 文件。

再举一个例子——据我所知,您不能使用 bdist 和 setup.py.

指定 %post%pre scriptlet

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