ごきげんよう
rbenvとruby-buildでRuby1.8.7を入れる必要があったのでメモとして残しときます。
まずは、rbenvとruby-buildをインストールしてしまいましょう。
rbenvは複数バージョンを切り替えられるもので、ruby-buildはそのプラグインです。
今回gitを使うので先にインストールしておきましょう。
[shell]
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo ‘export PATH="$HOME/.rbenv/bin:$PATH"’ >> ~/.bash_profile
$ echo ‘eval "$(rbenv init -)"’ >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv –version
[/shell]
これで環境が整います。最後のコマンドでバージョンが出ればOK。
ChromebookにLinuxを入れて行っている場合は.bash_profileではなく.bashrcのほうが良いかもしれません。
ちなみにruby-buildを直接コマンドから使いたい場合は
[shell]
$ cd ruby-build
$./install.sh
[/shell]
とruby-build内のinstall.shを実行すれば使えるようになります。
次に、Rubyの1.8.7を入れますが、
[shell]
$ rbenv install -l
[/shell]
これでインストールできるバージョンが出てきます。
この中で1.8.7-p375を入れてみます。
なんか、subversionとautoconfが入ってないと怒られるので入れとく。
[shell]
$ rbenv install 1.8.7-p375
$ rbenv global 1.8.7-p375
[/shell]
これで使えるようになる。
ここでエラーになる場合は、こやつはバージョンによってOpenSSL周りで問題が起きているらしく対策が必要。
[shell]
Index: ext/openssl/ossl_pkey_ec.c
===================================================================
— ext/openssl/ossl_pkey_ec.c (revision 41807)
+++ ext/openssl/ossl_pkey_ec.c (revision 41808)
@@ -762,8 +762,10 @@
method = EC_GFp_mont_method();
} else if (id == s_GFp_nist) {
method = EC_GFp_nist_method();
+#if !defined(OPENSSL_NO_EC2M)
} else if (id == s_GF2m_simple) {
method = EC_GF2m_simple_method();
+#endif
}
if (method) {
@@ -817,8 +819,10 @@
if (id == s_GFp) {
new_curve = EC_GROUP_new_curve_GFp;
+#if !defined(OPENSSL_NO_EC2M)
} else if (id == s_GF2m) {
new_curve = EC_GROUP_new_curve_GF2m;
+#endif
} else {
ossl_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");
}
[/shell]
rbenv を利用した ruby のインストール中にエラーとなる場合の対応 – Qiita
こちらを参考にさせてもらった。
これをpatch.diffなりに保存。
[shell]
$ cat patch.diff | rbenv install –patch 1.8.7-p375
$ rbenv global 1.8.7-p375
[/shell]
こいつをやるとインストール出来る。これで1.8.7-p375になる。
他のバージョンでも同じようにやってrbenv globalすれば切り替わる。
それでは ごきげんよう
source:
オブジェクト指向スクリプト言語 Ruby
sstephenson/ruby-build · GitHub
rbenv を利用した ruby のインストール中にエラーとなる場合の対応 – Qiita