2011年01月06日(木) [長年日記]
■ [unix][ruby] RubyのtrunkのコンパイルにはAutoconf 2.60以上が必要
CentOS 4.8のRubyは1.8.1で悲しいので、trunkをコンパイルしてみようと思った。
gitを使うことにして、レポジトリガイドからリンクされているNon-committer’s howto to join our developmentを参考にcloneを作成した。README.jaにある
- コンパイル・インストール
以下の手順で行ってください.
- もしconfigureファイルが見つからない、もしくはconfigure.inより古いようなら、autoconfを実行して新しくconfigureを生成する
に従ってautoconfを実行したら、
% autoconf configure.in:6: error: Autoconf version 2.60 or higher is required configure.in:6: the top level autom4te: /usr/bin/m4 failed with exit status: 63
というエラーになった。[ruby-dev:41858]によると
autoconfを実行する必要があるのは、svn(かgit)で最新を追いかける人だけです。そういう人は当然autoconfも最新を用意できることを前提にします。でなければsnapshotのtarballを使ってください。
というポリシーのようだ。
■ [unix] Autoconf 2.68のコンパイルにはM4 1.4.6以上が必要
仕方ないのでAutoconfの最新版2.68をダウンロードしてconfigureを実行したら、
checking for GNU M4 that supports accurate traces... configure: error: no acceptable m4 could be found in $PATH. GNU M4 1.4.6 or later is required; 1.4.14 is recommended
というエラーになってしまった。M4 1.4.6以上が必要とのこと。CentOS 4.8だとM4のバージョンは1.4.1だった。
■ [ruby] RubyのtrunkのコンパイルにはRubyが必要
M4 1.4.15は簡単にコンパイルできた。それによりAutoconf 2.68もコンパイル完了。Rubyのディレクトリでautoconfを実行してconfigureスクリプトも生成でき、それを使ってMakefileも作れた。んが、makeを実行すると
executable host ruby is required. use --with-baseruby option.
というエラーに。[ruby-list:45420]によると
|> 具体的には、ruby 1.9では、ruby自体をビルドするためには、既に |> 動作しているrubyがインストールされていることが必要です。 |これって、Ruby 1.9ではプラットフォームを問わずにそうなのですか? svnからチェックアウトした状態からコンパイルするためには必要 です。リリースされたパッケージにはrubyを使って生成された必要 なファイルが同梱されますから、そちらを使う場合には不要です。
とのこと。
■ やること
定期券