Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何修复charlock_holmes gem,使其在opensuse风滚草上工作?_Ruby_Rubygems_Opensuse - Fatal编程技术网

Ruby 如何修复charlock_holmes gem,使其在opensuse风滚草上工作?

Ruby 如何修复charlock_holmes gem,使其在opensuse风滚草上工作?,ruby,rubygems,opensuse,Ruby,Rubygems,Opensuse,我可以在opensuse上安装charlock_holmes gem,尝试在irb中快速打开它,我得到以下信息: > 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_

我可以在opensuse上安装charlock_holmes gem,尝试在irb中快速打开它,我得到以下信息:

> 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 > 
>irb
2.3.0:001>要求“查洛克·福尔摩斯”
LoadError:/home/wpostma/.rvm/gems/ruby-2.3.0/gems/charlock\u holmes-0.7.3/lib/charlock\u holmes/charlock\u holmes.so:
未定义符号:_ZTIN6icu_538ByteSinkE-/home/wpostma/.rvm/gems/ruby-2.3.0/gems/charlock\u holmes-0.7.3/lib/charlock\u holmes/charlock\u holmes.so
from/home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core\u ext/kernel\u 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`'
from/home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:127:in'require'
来自/home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:127:“在require中救援”
from/home/wpostma/.rvm/rubies/ruby-2.3.0/lib64/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:40:in'require'
来自(irb):1
from/home/wpostma/.rvm/rubies/ruby-2.3.0/bin/irb:11:in`'
2.3.0 :002 > 
在我看来,也许《查洛克·福尔摩斯》中的某些内容与《风滚草》中的libicu版本不兼容


我使用的是随rvm一起安装的ruby,清除所有gemset并重新安装并不能修复它。还有其他让查洛克·福尔摩斯工作的方法吗?也许我需要安装一个特殊的libicu副本(更早,更老),并将gem指向它?

这两个作品中的任何一个。对我来说,bundle配置选项工作得更好

这是安装gem的直接命令,用于将gem定向到正确的libicu版本:

gem install charlock_holmes -- --with-icu-dir=/usr/local
这是一个命令,用于告诉我以后在此系统上安装的哪个ruby项目将使bundler安装的gems正常工作,而不是中断:

bundle config build.charlock_holmes "--with-icu-dir=/usr/local" --global
因为我使用的是
rvm
,所以上面的捆绑包配置似乎只是该rvm环境的“全局”配置

在我的例子中,bundle配置非常有用,因为一系列本来会失败的操作(安装gems和引导大型rails应用程序)刚刚开始工作