2011-11-02 163 views
4

如何使用Python 2.7.2源創建二進制RPM包以安裝到非標準前綴(如/ opt/python27)中?如何將Python打包爲RPM以便安裝到/ opt中?

假設以下構建正確。

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的最後一個命令。

+0

這裏的目標是創建一個可以安裝在另一個盒子上的自定義Python發行版,該發行版滿足二進制級別的依賴性,但不允許從源代碼(例如生產機器)構建,並且包含一個較老的Python發行版(即2.4.3 RHEL5)。 –

回答

4

RPMs使用.spec文件中的rpmbuild構建。作爲一個例子,請看Fedora的python.spec

如果你不需要從源代碼來構建然後嘗試爲您分配一個預構建RPM轉速的--relocate開關:

rpm -i --relocate /usr=/opt/python27 python-2.7.rpm 
+0

感謝您的回答。我使用的是RHEL5,Fedora規範文件可能包含依賴項,其中一些會與系統安裝的軟件包發生衝突。另見我上面的澄清評論。 –

+0

我希望得到更詳細的答案,但因爲這是唯一的答案,因此將被接受。 –

1

這可能是一個有點晚了,現在迴應,但我試圖做類似的事情,我不想使用--relocate,因爲我的軟件包沒有安裝在/ opt之外的任何地方。

我所做的是添加以下兩行的方式:

不要忘記,你還需要更新您的文件%部分,以反映它現在安裝在/ opt