Gentoo/Prefixでrcairoのemergeがコケる
MacBookAirにGentoo/Prefixを導入していますが
mikutter用にruby-gtk2をemergeしようとしたところrcairoでコケてしまいました
>>> Install rcairo-1.10.2 into /Users/negi/Gentoo/var/tmp/portage/dev-ruby/rcairo-1.10.2/image/ category dev-ruby * Running install phase for ruby18 ... ------------------------------------------------------- You should not use ${EPREFIX} with helpers. --> /Users/negi/Gentoo/usr/lib/ruby/1.8/i686-darwin11 ------------------------------------------------------- * ERROR: dev-ruby/rcairo-1.10.2 failed (install phase): * Cannot install header file. * * Call stack: * ebuild.sh, line 98: Called call-ebuildshell 'src_install' * environment, line 764: Called src_install * environment, line 4637: Called ruby-ng_src_install * environment, line 4298: Called _ruby_each_implementation 'each_ruby_install' * environment, line 527: Called _ruby_invoke_environment 'ruby18' 'each_ruby_install' * environment, line 572: Called each_ruby_install * environment, line 1076: Called die * The specific snippet of code: * doins ext/cairo/rb_cairo.h || die "Cannot install header file." * * If you need support, post the output of 'emerge --info =dev-ruby/rcairo-1.10.2', * the complete build log and the output of 'emerge -pqv =dev-ruby/rcairo-1.10.2'.
エラーログはこんな感じですね
眺めてみるとheaderがinstallできない模様
ソースのコンパイルは出来てるのでその後でコケてるっぽい
ebuildを眺めてみると
each_ruby_install() { each_fakegem_install insinto $(ruby_get_hdrdir) doins ext/cairo/rb_cairo.h || die "Cannot install header file." }
ここら辺の$(ruby_get_hdrdir)へのPATHが怪しい感じなのですが
試行錯誤してみても解決できなかったので
Gentoo developerの@naota344さんに聞いてみたところ
insinto の部分を
local dir=$(ruby_get_hdrdir) insinto ${dir#${EPREFIX}}
に書きなおして見ましょう
との事なので書き直して
ebuildをdigest、再emergeしてみたところ無事通りました
後はコケる事なく無事ruby-gtk2をemergeする事ができました
エラーログから僅か数分で解決されてしまうあたりさすがです