【问题标题】:Installing JRuby gems with Mina使用 Mina 安装 JRuby gem
【发布时间】:2014-07-24 18:29:12
【问题描述】:

我正在尝试使用 Mina 在 JRuby 上部署一个应用程序,但是一个 gem 没有安装,实际上它一开始就不应该安装...

gem 是 unf_ext,它是一个 Mechanize 依赖项。如果我通过 SSH 连接到服务器并尝试安装 Mechanize,它会毫无问题地安装,因此只会安装 unf,而不是 unf_ext

错误:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

       /home/linkrecover/.rbenv/versions/jruby-1.7.13/bin/jruby extconf.rb  
   NotImplementedError: C extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS. 

      (root) at /home/linkrecover/.rbenv/versions/jruby-1.7.13/lib/ruby/shared/mkmf.rb:8 
     require at org/jruby/RubyKernel.java:1065 
      (root) at /home/linkrecover/.rbenv/versions/jruby-1.7.13/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:1 
      (root) at extconf.rb:1 


   Gem files will remain installed in /var/www/lr/tmp/build-14062262733806/vendor/bundle/jruby/1.9/gems/unf_ext-0.0.6 for inspection. 
   Results logged to /var/www/lr/tmp/build-14062262733806/vendor/bundle/jruby/1.9/gems/unf_ext-0.0.6/ext/unf_ext/gem_make.out 
   An error occurred while installing unf_ext (0.0.6), and Bundler cannot continue. 
   Make sure that `gem install unf_ext -v '0.0.6'` succeeds before bundling. 

我的 Gemfile:https://gist.github.com/davidhq/09d84bc79683b9d3332e

那么如何让 bundler 在通过 Mina 运行时很好地安装所有东西?

【问题讨论】:

    标签: ruby gem jruby mechanize mina


    【解决方案1】:

    您声明的一些 gem(Gemfile.lock 应该知道是哪一个)依赖于使用原生 C 扩展的 unf_ext gem。您将需要以某种方式避免使用 JRuby(例如,使用 platform: :mri,就像您对其他人所做的那样)。细节取决于有问题的宝石以及您需要多少宝石,例如如果仅用于开发,只需将其移至 group :developmentbundle --without development

    【讨论】:

    • 实际上 Mechanize gem 依赖于unf_ext ...但是当安装在 JRuby 上时它不应该需要那个...我想我不应该将 Mechanize 移动到 platform: :jruby因为它适用于两者,只是具有不同的依赖关系。
    • 我想通了...在上面回答。
    【解决方案2】:

    原来Gemfile.lock 没有发现 JRuby 的依赖关系,因为我正在使用 MRI 进行开发。我在本地切换到 JRuby 并运行 bundle install 以在 Gemfile.lock 中生成正确的信息并提交它......现在一切都安装好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多