Macで開発環境の構築をしようとしていてエラーになりました。

rbenvからRubyをVersion指定してインストール仕様としたところ、エラーとなりました。

○コマンド
CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install 1.9.3-p327

○エラー内容
BUILD FAILED

Inspect or clean up the working tree at /var/folders/5j/t8syy1pj4432ckh5ggt2mkdm0000gn/T/ruby-build.20130101054225.58637
Results logged to /var/folders/5j/t8syy1pj4432ckh5ggt2mkdm0000gn/T/ruby-build.20130101054225.58637.log

Last 10 log lines:
openssl_missing.c:27: error: conflicting types for ‘HMAC_CTX_copy’
/usr/local/include/openssl/hmac.h:102: error: previous declaration of ‘HMAC_CTX_copy’ was here
openssl_missing.c:122: error: conflicting types for ‘EVP_CIPHER_CTX_copy’
/usr/local/include/openssl/evp.h:503: error: previous declaration of ‘EVP_CIPHER_CTX_copy’ was here
make[2]: *** [openssl_missing.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make[1]: *** Waiting for unfinished jobs....
installing default nkf libraries
linking shared-object nkf.bundle
make: *** [build-ext] Error 2

○その前の動作
OPENSSLおよびreadlineについては、インストールおよびリンク済みです。

どうぞ、よろしくお願いいたします。

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2013/01/08 02:52:12
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

ポイント68pt

No.1 の回答は、多分、以下のどちらかのページからの情報なんだと思います。

ざっくりと要約すると、

rvm で ruby をインストールしようとすると HMAC_CTX_copy の type が conflict する、とかエラーが出るんだ。
元々、入ってる openssl や readline を使うのが原因っぽい。
気を取り直して、rvm で openssl と readline をインストールしなおしてみたら、ruby のインストールがうまくいったよ。

ということでしょう。

rvm でインストールすると、$HOME/.rvm/src にインストールされ、/usr/local に入ってるものを使ってない、というのがポイントなんじゃないか、と。
そういう視点で、もう少し探してみて見つかったのがこちら。

OS X で rbenv を使って ruby 1.9.3 の環境を作る #Ruby #開発環境 #AdventCalendar - Qiita

http://qiita.com/items/9dd797f42e7bea674705

brew を使って、openssl と readline をインストールしなおしてから、rbenv で Ruby をインストールする、という手順になってます。


こちらのページにも、同じようなことが書かれています。

rvmを捨ててrbenvを使おう - ブックマクロ開発に

http://d.hatena.ne.jp/takuya_1st/20121104/1352015815

「irb で日本語が通らない」という辺りも、参考になるかと思います。



Mac 使いではないので、検索で得た情報だけですが、問題解決の糸口になれば、と。

id:tsuyoring

回答ありがとうございます。
納得はいかないものの、2つめのリンクの
>osx のreadlineライブラリは日本語が通らないので、homebrewを使うようにする。以下のようにコンパイルする。
という記載に沿って、readline/opensslに対してPrefixの引数を与えてあげることで上手く行きました。
(正確には自分は以下のコマンドを入力しましたが、、
 CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install -v 1.9.3-p194)

内容についてはちょっと理解できていないので、引き続きリンク先を読んで勉強させてもらいます・・・
Mac使いでないにも関わらず、親切にありがとうございました!

2013/01/08 02:52:34

その他の回答2件)

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320

ポイント23pt

rvmを使ってopensslとreadlineをインストールしてみて下さい。
コマンドラインの指定は下記の通り。

rvm package install openssl
rvm package install readline
id:tsuyoring

rvmからrbenvに移行してrbenvからinstall/linkを実行しているのですが、
rvmでのインストールが必要なのでしょうか……?
rbenvとrvmって共存させてはいけないと思っていたのですが、勘違いですかね。。。

2013/01/01 15:16:47
id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

ポイント68pt

No.1 の回答は、多分、以下のどちらかのページからの情報なんだと思います。

ざっくりと要約すると、

rvm で ruby をインストールしようとすると HMAC_CTX_copy の type が conflict する、とかエラーが出るんだ。
元々、入ってる openssl や readline を使うのが原因っぽい。
気を取り直して、rvm で openssl と readline をインストールしなおしてみたら、ruby のインストールがうまくいったよ。

ということでしょう。

rvm でインストールすると、$HOME/.rvm/src にインストールされ、/usr/local に入ってるものを使ってない、というのがポイントなんじゃないか、と。
そういう視点で、もう少し探してみて見つかったのがこちら。

OS X で rbenv を使って ruby 1.9.3 の環境を作る #Ruby #開発環境 #AdventCalendar - Qiita

http://qiita.com/items/9dd797f42e7bea674705

brew を使って、openssl と readline をインストールしなおしてから、rbenv で Ruby をインストールする、という手順になってます。


こちらのページにも、同じようなことが書かれています。

rvmを捨ててrbenvを使おう - ブックマクロ開発に

http://d.hatena.ne.jp/takuya_1st/20121104/1352015815

「irb で日本語が通らない」という辺りも、参考になるかと思います。



Mac 使いではないので、検索で得た情報だけですが、問題解決の糸口になれば、と。

id:tsuyoring

回答ありがとうございます。
納得はいかないものの、2つめのリンクの
>osx のreadlineライブラリは日本語が通らないので、homebrewを使うようにする。以下のようにコンパイルする。
という記載に沿って、readline/opensslに対してPrefixの引数を与えてあげることで上手く行きました。
(正確には自分は以下のコマンドを入力しましたが、、
 CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install -v 1.9.3-p194)

内容についてはちょっと理解できていないので、引き続きリンク先を読んで勉強させてもらいます・・・
Mac使いでないにも関わらず、親切にありがとうございました!

2013/01/08 02:52:34
id:mahosuto No.3

回答回数789ベストアンサー獲得回数28

ポイント9pt

http://qiita.com/items/c3aff76fe50b765e4eb8

ここが参考になりますか?

id:tsuyoring

ありがとうございます!
Prefixの引数の記載について、参考にさせていただきます。

2013/01/08 02:51:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません