Ruby2.0.0-p0で依存gem(rbtree)のインストールに失敗する
Ruby2.0.0-p0でrbtree gemのインストールが失敗するので,Dripのインストールが失敗します.以下のふたつの方法で解決しました.ご所見をお聞かせください.
- エラーの原因がrbtree gemの構成にあったので新しいgemを作り, それを利用しました.kitak/rbtree2
- 代用にrbtree-pure gemを利用する.pwnall/rbtree-pure
フォークしたリポジトリkitak/Drip
rbtreeインストール時のエラーログ
uilding native extensions. This could take a while...
ERROR: Error installing rbtree:
ERROR: Failed to build gem native extension.
/Users/kitak/.rbenv/versions/2.0.0-p0/bin/ruby extconf.rb
checking for ruby/st.h... yes
checking for rb_exec_recursive() in ruby.h... yes
creating Makefile
make
compiling dict.c
compiling rbtree.c
linking shared-object rbtree.bundle
make install
/usr/local/bin/ginstall -c -m 0755 rbtree.bundle /Users/kitak/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rbtree-0.3.0/.
/usr/local/bin/ginstall: ‘rbtree.bundle’ and ‘/Users/kitak/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rbtree-0.3.0/./rbtree.bundle’ are the same file
make: *** [install-so] Error 1
Gem files will remain installed in /Users/kitak/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rbtree-0.3.0 for inspection.
Results logged to /Users/kitak/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rbtree-0.3.0/./gem_make.out
ありがとうございます。 pure rubyの赤黒木の実装なら自分でも持っているので、RBTreeの利用にこだわりたいです。 (pure rubyの場合、赤黒木ではなく入れ子のArrayにすると思います。)
RBTreeのオリジナル版が改訂されるのを待つべきでしょうか? 連絡先どこなんだろ...。
本家が改訂されるようすがなければ、rbtree2を、 あるいはその間にpure rubyの速い実装を思いついたらrbtreeなしで動くものを採用しようかなあ...。
http://raa.ruby-lang.org/project/ruby-rbtree/ にあるメールアドレスに問い合わせしてみましたー。
問い合わせ,ありがとうございます! (最初,本家の作者の方に連絡しようと思ったのですが,連絡先がみつからずに困ってました) では,本家が改訂されるのを少し待つということで.
[ruby-core:52882] [ruby-trunk - Bug #7698][Assigned] RubyGems 2.0 has an incompatibility about installation of extension libraries
こういうのが出てました。RubyGemsの問題なのかなあ。 よくわからないけど。
I can still reproduce this with RubyGems 2.0.3 on ruby 2.1.0dev (2013-06-16 trunk 41328) [x86_64-darwin12.3.0]
This should work now on ruby-2.0.0, but is broken on ruby-2.1.0.
In order to fix this in rbtree, we should apply the following patch: https://gist.github.com/tmm1/7609371
See also: ruby-core:58715 in https://bugs.ruby-lang.org/issues/9121