在RPM环境中管理pip

时间:2014-01-17 18:18:52

标签: python pip rpm yum package-managers

对于我们的prod应用程序,我们以RPM管理所有包。在一个完美的百胜世界,这很好。

但是,最近每种语言或框架都在部署自己的包管理器。例如,对于python,我几乎总是使用pip,然后在进入生产时再次为rpm构建包。同样适用于npm或宝石。

这是一个很多人遇到的问题吗?什么是避免这一切的最佳方法?人们是通过吮吸并手动包装所有东西来处理这个问题,还是有一些自动化的方法来整合它们?

我很想听到这方面的想法。

3 个答案:

答案 0 :(得分:8)

我使用pyp2rpm rstr 模块构建rpm包,我不喜欢通过 pip 随机安装某些文件:

pyp2rpm -n rstr > ~/rpmbuild/SPECS/rstr.spec
rpmbuild -ba ~/rpmbuild/SPECS/rstr.spec

但我不知道这对你的生产用途是否足够好。

答案 1 :(得分:2)

您可以安装fpm:https://github.com/jordansissel/fpm

  

Effing包管理!为多个平台(deb,rpm等)构建软件包非常容易和理智。 http://fpm.readthedocs.io/en/latest/

接下来你可以运行:

$ fpm -s python -t rpm pyramid
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"python-pyramid-1.9a2-1.noarch.rpm"}

-s source type
-t类型的包创建
并作为最后一个参数包的名称

https://fpm.readthedocs.io/en/latest/source/python.html

答案 2 :(得分:1)

我更喜欢安装到与默认系统不同的sitelib。因此,我做了:

$ pip install --user django

远非理想,不使用dnf / rpm / yum,但同时不会弄乱你的系统模块。你可以随时擦拭它们。

相关问题