【问题标题】:How can I fix charlock_holmes gem so it works on opensuse Tumbleweed?如何修复 charlock_holmes gem 使其适用于 opensuse Tumbleweed?
【发布时间】:2016-11-12 03:14:05
【问题描述】:

我可以在 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 > 

在我看来,charlock_holmes 中的某些内容可能与 tumbleweed 中的 libicu 版本不兼容。

我正在使用通过 rvm 安装的 ruby​​,并且清除我所有的 gemset 并重新安装并不能修复它。还有其他方法可以让 charlock_holmes 工作吗?也许我需要安装一个特殊的 libicu(较早、较旧)副本并将 gem 指向它?

【问题讨论】:

    标签: ruby rubygems opensuse


    【解决方案1】:

    这些作品中的任何一个。对我来说,捆绑配置选项效果更好。

    这是安装 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 应用程序)刚刚起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      相关资源
      最近更新 更多