2016-11-12 70 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应用程序)的工作很有帮助。

相关问题