【问题标题】:Installing gems on jruby在 jruby 上安装 gem
【发布时间】:2011-11-21 22:41:24
【问题描述】:

我使用过 ruby​​ 和 ROR,但这个新项目要求我使用 jruby。而且我收到了文档广告,它要求我安装 jgem install cucumber 等。

我在 Ubuntu 10.10 上这样做

我不明白 jgem 部分。

我做了一些研究并尝试通过以下方式安装它: jruby -S gem install cucumber

并得到输出:

JRuby limited openssl loaded. gem install jruby-openssl for full support.
http://jruby.kenai.com/pages/JRuby_Builtin_OpenSSL
ERROR:  While executing gem ... (SystemCallError)
    Unknown error - mkdir failed

我尝试安装:gem install jruby-openssl 并得到相同的结果

【问题讨论】:

  • 看起来像是安装 gem 的路径的一些权限问题。您能否检查 GEM_HOME 环境变量是否具有适当的权限。

标签: ruby-on-rails ruby rubygems gem jruby


【解决方案1】:

这些步骤展示了如何将 biojruby-openssl 打包到 jruby-complete-1.6.7.jar 成为 biojruby.jar (仅出于我的目的,我需要 bioruby 来开发生物信息学程序)

步骤如下:

  • 确保导航到终端/控制台中包含 jruby-complete-1.6.7.jar 的目录

  • 在终端/控制台中,输入:

    mkdir biojruby
    
  • 只需添加您想要的任何 gem,因为纯粹用 ruby​​ 编写而没有任何 C 扩展的 gem 将在 Jruby 中工作!

    java -jar jruby-complete-1.6.7.jar -S gem install -i ./biojruby bio
    java -jar jruby-complete-1.6.7.jar -S gem install -i ./biojruby jruby-openssl
    jar uf jruby-complete-1.6.7.jar -C biojruby .                                
    mv jruby-complete-1.6.7.jar biojruby.jar
    
  • 现在您可以删除文件夹“biojruby”

  • 完成!

现在输入:

java -jar biojruby.jar -S gem list

你会看到(表示成功):

**** LOCAL GEMS ***
bio (1.4.2)
bouncy-castle-java (1.5.0146.1)
jruby-openssl (0.7.6.1)
rake (0.8.7)
sources (0.0.1)*

现在您可以输入以下内容使用您的 ruby​​ 脚本进行测试:

java -jar biojruby.jar #Your_Ruby_Script.rb#

【讨论】:

  • 谢谢,这就是我在寻找我的 hbase jruby 的东西。
  • 在 2020 年,使用 jruby 9.2.10.0,这个方便的过程不再起作用或不再起作用。如图所示,本地 gem 集未更新。如果我了解 jRuby 在哪里寻找已安装的 gem,它会在用户 ~/.gems/jruby/ 目录中找到“本地 gem”。鉴于此,人们会希望 LOCAL GEMS 设置为空,而不是为测试的成功结果填充。早在 2012 年,脚本就运行了,因为用户的环境而不是 jar 提供了所需的 gem。这是一个不受欢迎的配置。
  • 如果有更简单的方法就好了。我写了大量的 ruby​​ gems,最近才开始使用 jruby,但我不知道如何在 jruby 上安装 gems ...
【解决方案2】:

听起来很奇怪,您是如何安装 JRuby 的?使用 RVM?

如果您使用 rvm,那么安装和使用 jruby 就非常容易,就像其他所有 ruby​​ 实现一样。

rvm install jruby
rvm use jruby

jruby -v
gem install jruby-openssl

【讨论】:

  • 无论如何,即使没有 rvm,jruby 的安装也很容易,只需将 jruby 文件夹放在 $PATH 中的文件夹中即可...完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多