如何从 RPM 安装 Python 模块依赖项?

如何从 RPM 安装 Python 模块依赖项?

我有一个应用程序,我将其打包为 RPM 并安装在 CentOS 7 上。当我安装 RPM 时,我希望它安装一些已编译的二进制文件以及一些 Python 模块及其依赖项。

我的 Python 模块需要比 CentOS 提供的 Python 版本更新的版本,因此我将在/usr/local/lib/python2.7/site-packages.这意味着我无法使用 CentOS 提供的 RPM,因为它们安装在/usr/lib.我可以轻松安装/usr/local/lib使用下的模块pip

有没有办法打包我的应用程序,以便:

  • 我可以从 RPM 安装我的应用程序。
  • /usr/local/lib我的 Python 模块在安装应用程序时安装。
  • 所有 Python 依赖项也会被安装。
  • 我避免维护 Python 依赖项的 RPM 包。

对于这种事情有约定吗?或者有一些例子吗?我没有看到任何直接相关的内容Fedora 的 Python 打包文档

我考虑过的选项是:

  1. 将我的应用程序、Python 模块和所有 Python 依赖项捆绑到一个 RPM 中。

    我不喜欢这个选项,因为如果不将整个应用程序升级到新版本,我将无法更新客户端系统上的各个依赖项。

  2. 为我的应用程序、Python 模块和第三方依赖项创建单独的 RPM。

    我不喜欢这个选项,因为我必须为依赖树中的每个第三方模块维护 RPM。

  3. pip从我的 RPM 中调用。

    我不喜欢这个选项,因为 RPM 无法跟踪所做的更改pip,并且我无法确定在删除 RPM 时是否可以安全地删除第三方 Python 模块。

答案1

使用软件集合,您可以在旧系统上拥有新版本的模块,或者在新系统上拥有旧模块。看: http://www.softwarecollection.org/

相关内容