作った。のだけど今はちゃんとまとめる気力がない、、のでざっくり。
まず、下調べ
- 5.4 で 2.6.4 のをつくった人はいた
http://www.grenadepod.com/2009/12/26/building-python-2-6-4-rpm-for-centos-5-4/
- Fedora 14 だと 2.7 !
http://download.fedora.redhat.com/pub/fedora/linux/releases/14/Fedora/source/SRPMS/
- 2.5 とか 2.6 とか
http://www.geekymedia.com/uncategorized/rhel5-centos5-rpms-for-python-2-5-and-2-6/
- epel だと 2.6....! 2.6.5!
http://download.fedora.redhat.com/pub/epel/5/
・・・とまぁRHEL(CentOS)では 2.7 のをこさえたぜ!というエントリがみあたらず、
「へっへー、どこぞのだれかがつくってごした SRPM でさくっと作っちゃお〜」という目論見が外れた。
のでひさしぶりにごそごそ作ることに。。
1. Fedora 14 の SRPM を参考に、、、
-> SPECがいろいろややこしいかんじ。。パス。
2. epel の SRPM を参考に、、
-> んー、、いいけど、ちょっと。
3. Misc/RPM/python-2.7.spec をつかう
-> これにしよう。。
で python-2.7.spec をごそごそいじり。
・config_binsuffix が 2.6 のままなので 2.7 になおす
・pydotorg のところも適当に変える
・x86_64 の場合、/usr/lib64 のさばきがこのままだとできないので 他の SRPM にあるような /usr/lib64 むけのパッチを真似して作成(まぁ /usr/lib にいれてかまわんのだけどね...)
・Makefile 中の LIBDIR のせいで rpmbuild に失敗するため、 make のあと(ad-hoc な感じだけど) LIBDIR を置換するワンライナを追加
(これも x86_64 で ./configure --libdir=/usr/lib64 指定しているせい。SPEC では本来なら %configure 使うのが筋だと思うけど、んっんー。)
・%file に
%{__prefix}/%{libdirname}/python%{libvers}/Tools
%{__prefix}/%{libdirname}/python%{libvers}/lib2to3
だったかを追加。
以上変更後、
# QA_RPATHS=$[ 0x0001|0x0010 ] rpmbuild -ba python-2.7.spec
で作成。
QA_RPATHS、、は rpath なんたらのパッチをあてれば要らなくなるはず。
配布されてる SRPM どもは QA_ほげほげ不要なようにこさえてあると思われる。
作成後、インストールし、動作テストしてみたら、、
$ python2.7 [Enter]
-> 死亡
これは
/usr/lib/python2.7 -> /usr/lib64/python2.7 の symlink 貼ったら解消。。
んー、ここでも libdir の捌きが必要、、よくわからんので %post で symlink はるようにした。
virutalenv で作成した環境で Django が動くことは確認したので大丈夫でしょう。
(作りが甘すぎるけども)成果物はあとで載せる。
0 件のコメント:
コメントを投稿