如何将Python打包成RPM以安装到/opt目录?

5
如何从Python 2.7.2源码创建二进制RPM包,并将其安装到非标准前缀(例如/opt/python27)中?
假设以下构建是正确的。
wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxvf Python-2.7.2.tgz
cd Python-2.7.2
./configure --prefix=/opt/python27 --enable-shared
make
make test
sudo make install

我想要构建一个二进制的RPM包,而不是使用最后一条命令。


这里的目标是创建一个自定义的Python发行版,可以安装在另一台机器上,满足二进制级别的依赖关系,但不允许从源代码构建(即生产机器),并包含较旧的Python发行版(即RHEL5上的2.4.3)。 - Victor Olex
2个回答

4
RPM是使用rpmbuild从.spec文件构建的。例如,查看Fedora的python.spec
如果您不需要从源代码构建,则可以尝试在预构建的适用于您发行版的RPM上使用rpm的--relocate开关。
rpm -i --relocate /usr=/opt/python27 python-2.7.rpm

感谢您的回答。我正在使用RHEL5,Fedora规范文件可能包含依赖项,其中一些可能与系统安装的软件包冲突。请参见我上面的澄清评论。 - Victor Olex
我希望得到更详细的答案,但由于这是唯一的答案,因此将被接受。 - Victor Olex

2

可能现在回复有点晚了,但我曾尝试做类似的事情,而我不想使用--relocate,因为我的软件包并不是为除/opt之外的任何地方安装而设计的。

我的做法是添加以下两行:

 Prefix: /opt
 %define _prefix /opt/

不要忘记更新你的%files部分,以反映它现在正在安装到/opt


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接