人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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については、インストールおよびリンク済みです。

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

●質問者: tsuyoring
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● oil999
●23ポイント

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

rvm package install openssl
rvm package install readline

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

2 ● a-kuma3
●68ポイント ベストアンサー

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 使いではないので、検索で得た情報だけですが、問題解決の糸口になれば、と。


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使いでないにも関わらず、親切にありがとうございました!

3 ● otusoham
●9ポイント

http://qiita.com/items/c3aff76fe50b765e4eb8

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


tsuyoringさんのコメント
ありがとうございます! Prefixの引数の記載について、参考にさせていただきます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ