2016-11-12 72 views
3

我可以在openSUSE上安裝charlock_holmes寶石,試圖在IRB迅速打開它,我得到這個:我該如何修復charlock_holmes gem,以便在opensuse Tumbleweed上運行?

> irb 
2.3.0 :001 > require 'charlock_holmes' 
LoadError: /home/wpostma/.rvm/gems/ruby-2.3.0/gems/charlock_holmes-0.7.3/lib/charlock_holmes/charlock_holmes.so: 
undefined symbol: _ZTIN6icu_538ByteSinkE - /home/wpostma/.rvm/gems/ruby-2.3.0/gems/charlock_holmes-0.7.3/lib/charlock_holmes/charlock_holmes.so 
     from /home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
     from /home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
     from /home/wpostma/.rvm/gems/ruby-2.3.0/gems/charlock_holmes-0.7.3/lib/charlock_holmes.rb:1:in `<top (required)>' 
     from /home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require' 
     from /home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require' 
     from /home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require' 
     from (irb):1 
     from /home/wpostma/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>' 
2.3.0 :002 > 

它看起來對我來說,或許真的在charlock_holmes是內風滾草的libicu版本不兼容。

我使用ruby與rvm一起安裝,並清除所有gemset並重新安裝不能解決它。任何其他方式讓charlock_holmes工作?也許我需要安裝libicu的特殊副本(更早,更舊),並指出它的寶石?

回答

0

這些作品中的任何一個。對於我來說,bundle config選項效果更好。

這是一個直接的命令來安裝寶石,引導其朝向正確的libicu版本:

gem install charlock_holmes -- --with-icu-dir=/usr/local 

這是一個命令來告訴我這個系統後安裝的不斷紅寶石項目,將得到安裝寶石由於我使用rvm上述束配置似乎是「全球」,以僅RVM環境

bundle config build.charlock_holmes "--with-icu-dir=/usr/local" --global 

:通過打捆只是工作,而不是斷裂。

在我的情況下,bundle配置對於那些本來會失敗的大量操作(安裝gems和引導大型rails應用程序)的工作很有幫助。

相關問題