読者です 読者をやめる 読者になる 読者になる

rbenv で 2.0.0-p0 をインストールする際のエラー解決

問題のエラー

Inspect or clean up the working tree at /tmp/ruby-build.20170221141422.2681 Results logged to /tmp/ruby-build.20170221141422.2681.log Last 10 log lines: ^ ossl_pkey_ec.c:821:29: エラー: ‘EC_GROUP_new_curve_GF2m’ が宣言されていません (この関数内での最初の使用) new_curve = EC_GROUP_new_curve_GF2m; ^ ossl_pkey_ec.c:821:29: 備考: 未宣言の識別子は出現した各関数内で一回のみ報告されます make[2]: *** [ossl_pkey_ec.o] エラー 1 make[2]: ディレクトリ `/tmp/ruby-build.20170221141422.2681/ruby-2.0.0-p0/ext/openssl' から出ます make[1]: *** [ext/openssl/all] エラー 2 make[1]: ディレクトリ `/tmp/ruby-build.20170221141422.2681/ruby-2.0.0-p0' から出ます make: *** [build-ext] エラー 2

 

環境は CentOS7

Ruby 2.0.0-p247 以前のバージョンを RedHat系の OS にインストールする際に生じるエラーらしい。

解決方法

詳細は rbenv の Wiki に書いてあるけど、パッチを当てる必要があります。

パッチを当てるコマンドは以下の通り。

curl -fsSL "https://github.com/ruby/ruby/commit/0d58bb55985e787364b0235e5e69278d0f0ad4b0.patch" | \
  filterdiff -x a/ChangeLog | rbenv install --patch 2.0.0-p0

 

わざわざブログに書くほどのことかと言われればそうかもしれないけど

Wiki 見る前にググったらあんまり情報なかったので書きました。