SRPMをビルドするのは、「rpm --rebuild」でなくて「rpmbuild」
PythonをRed Hat Linux 9(free版)に2.4系を入れようと思ったのよ。(RH9に入っているのは2.2系)
で、オフィシャルサイトで配られている RPM を突っ込もうかと思ったんだけど、これが Fedora Core 3用みたいなのよね。
- Linux RPMs for Python 2.4
http://www.python.org/2.4/rpms.html
試しに挑戦したんだけど、FC3に含まれているランタイムライブラリを色々要求され、無理矢理つっこんだら、一応入ったけど、何かへんちくりんな動きをしてしまいますた。
(例えば、IPython入れたら、補完機能が使えなかったり、幾つかライブラリをimportできなかったり…)
という訳で、SRPM版から入れようと思った訳。
tarボールから入れないのは、今回SRPMからRPMを作っておけば、後でインストールしやすくなると思ったから。わはは。
(実際、tarボールから入れると、結構コンパイル時間がかかる)
SRPMからRPMを作る方法は、どんなのかいな?と思ってぐぐるったら、早速引っかかった。
- SRPMからプログラムをインストールするには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/223instsrpm.html
$ rpm --rebuild postfix-0.0.20010228-0vl2.src.rpm
なるほど、なるほど、"rpm --rebuild"ね。
…できねぇ。「unknown option」って出るよ。もしかしてRH9って古いからなのかなぁ?
と、他に方法が無いかぐぐるった。すると、こんなのが見つかった。
- Commy's Cafe - FAQ : 投稿日時: 2003-11-23 10:56 更新日時: 2003-11-26 23:33
http://www.komine.biz/modules/xoopsfaq/index.php?cat_id=1
...
インターネットで調べると
rpm --rebuild hogehoge.srpm
なるコマンドでリビルドできるとありました
過去にこのコマンドでリビルドした経験もあったので実際に実行してみるとrpmコマンドにそんな引数はないっていわれてしまいますよくよく調べると現在主流のrpmはバージョン4、んで上記コマンドでリビルドできるのが3以前なので、リビルドできないということでした
バージョン4からはrpmbuildなるコマンドを利用します
それではということで"rpmbuild --rebuild hogehoge.srpm"とすると、そんなコマンドはないって言われてしまいます
デフォルトではこのコマンドはインストールされないので別途パッケージrpm-buildをインストールしてください
その後rpmbuild --rebuild hogehoge.srpmでリビルドができるようになります
なるほど、rpmのバージョンに依存するのか。
RH9はというと、バージョン4ですな。
$ rpm --version RPM バージョン 4.2
ネット上では、結構 "rpm --rebuild"せよって勧めている解説が多かったんだけど、多くの人は、古いバージョンを使っているって事なのかなぁ?
まぁ、いいや。ってんで、早速"rpmbuild"を使ってみる。
$ rpmbuild --rebuild python2.4-2.4.1-1pydotorg.src.rpm ... debug Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/python2.4-2.4.1-root 書き込み中: /usr/src/redhat/RPMS/i386/python2.4-2.4.1-1pydotorg.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/python2.4-devel-2.4.1-1pydotorg.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/python2.4-tkinter-2.4.1-1pydotorg.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/python2.4-tools-2.4.1-1pydotorg.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/python2.4-docs-2.4.1-1pydotorg.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/python2.4-debuginfo-2.4.1-1pydotorg.i386.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.35836 + umask 022 + cd /usr/src/redhat/BUILD + cd Python-2.4.1 + '[' -n /var/tmp/python2.4-2.4.1-root -a /var/tmp/python2.4-2.4.1-root '!=' / ']' + rm -rf /var/tmp/python2.4-2.4.1-root + rm -f mainpkg.files tools.files + exit 0 Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.35836 + umask 022 + cd /usr/src/redhat/BUILD + rm -rf Python-2.4.1 + exit 0
出来たので、早速入れてみよう。
$ ls -l 合計 14992 -rw-r--r-- 1 root root 7271925 10月 27 15:21 python2.4-2.4.1-1pydotorg.i386.rpm -rw-r--r-- 1 root root 4213053 10月 27 15:21 python2.4-debuginfo-2.4.1-1pydotorg.i386.rpm -rw-r--r-- 1 root root 700154 10月 27 15:21 python2.4-devel-2.4.1-1pydotorg.i386.rpm -rw-r--r-- 1 root root 2102109 10月 27 15:21 python2.4-docs-2.4.1-1pydotorg.i386.rpm -rw-r--r-- 1 root root 262269 10月 27 15:21 python2.4-tkinter-2.4.1-1pydotorg.i386.rpm -rw-r--r-- 1 root root 756478 10月 27 15:21 python2.4-tools-2.4.1-1pydotorg.i386.rpm $ rpm -ivh python2.4-2.4.1-1pydotorg.i386.rpm Preparing... ########################################### [100%] 1:python2.4 ########################################### [100%]
ちなみにインストールすると、"python2.4"ってファイル名として入る。
$ python -V Python 2.2.2 $ python2.4 -V Python 2.4.1 $ ls /usr/bin/py* -l -rwxr-xr-x 1 root root 82 10月 27 15:20 /usr/bin/pydoc2.4 -rwxr-xr-x 2 root root 791232 2月 25 2003 /usr/bin/python lrwxrwxrwx 1 root root 6 10月 20 19:16 /usr/bin/python2 -> python -rwxr-xr-x 2 root root 791232 2月 25 2003 /usr/bin/python2.2 -rwxr-xr-x 1 root root 978816 10月 27 15:20 /usr/bin/python2.4
最初、入ってないのか?と思って焦ったよ。