From: Emosei <emosei / ow-japan.com> Subject: [ruby-list:45035] rubyバイナリの共存に関して Date: Fri, 13 Jun 2008 01:28:43 +0900 るびきちです。 > 他にも、コンパイルオプションで、 --program-suffixを指定するなど、 > 調べると色々な方法があるようです。 > > 皆さんが共存させる時にはどのようにしていますか? --program-suffixを指定しています。 僕の場合はさらに--prefixを指定して、/pkgsディレクトリ以下にインストールしています。 /pkgsにはいろいろなプログラムをインストールしています。 こうしておかないと古いRubyを使おうと思ってもライブラリが新しいのに上書き されてしまいます。 そして、 cd /usr/local/bin; ln -s /pkgs/ruby18/bin/ruby ruby18 のようにシンボリックリンクを張っています。 # ruby-1.8.7-p17 ./configure --prefix=/pkgs/ruby-1.8.7-p17 --program-suffix=187p17 # stable snapshot ./configure --prefix=/pkgs/ruby18 --program-suffix=18 ただ、site_rubyやgemsディレクトリも別個になってしまうので cd /pkgs/ruby18/lib/ruby rm -rf gems site_ruby ln -s /usr/local/lib/ruby/site_ruby/ ln -s /usr/local/lib/ruby/gems/ もやっています。今なら ln -s /usr/local/lib/ruby/vendor_ruby/ も必要でしょうか。 configureオプションに --with-sitedir や --with-vendordir があるのに、 --with-gemdir がないのが不便です。あればいいのに… > 目的は、irb等でバージョンを切り替えながら > 動作確認しながら、主として使用するバージョンを > 適宜切り替えいきたいと考えています。 この目的にはrcodetoolsに含まれているxmpfilterをどうぞ。 RUBY_VERSION # => "1.8.7" [].tap {|a| a[0] = 9 } # => [9] vs RUBY_VERSION # => "1.8.6" [].tap {|a| a[0] = 9 } # => # ~> -:2: undefined method `tap' for []:Array (NoMethodError) -- rubikitch Blog: http://d.hatena.ne.jp/rubikitch/ Site: http://www.rubyist.net/~rubikitch/