【问题标题】:How do you update JRuby's gem command?你如何更新 JRuby 的 gem 命令?
【发布时间】:2011-07-20 23:58:55
【问题描述】:

我们如何更新 JRuby 使用的 gem 版本?

JRuby 使用 gem (1.5.1),我们想将它升级到 1.8.7。我们希望将 gem 安装在 Ruby/gems 中

我们跑:

bin/jruby gem install rubygems-update
Fetching: rubygems-update-1.8.5.gem (100%)
Successfully installed rubygems-update-1.8.5
1 gem installed

bin/jruby gem install --system
ERROR:  While executing gem ... (OptionParser::InvalidOption)
invalid option: --system

(更新也不行)

bin/jruby gem update --system
Updating RubyGems
Updating RubyGems to 1.8.5
Installing RubyGems 1.8.5
ERROR:  While executing gem ... (Errno::EBADF)
Bad file descriptor - Bad file descriptor

gem (1.8.5) 的安装/更新如何完成?

配置:

  • 使用 Maven 安装 JRuby。
  • JRuby 安装在: ~/.m2/repository/org/jruby/jruby-complete/1.6.3/jruby-complete-1.6.3.jar
  • jruby-complete-1.6.3.jar 没有爆炸。
  • jruby-complete-1.6.3.jar 在其中内置了“gem”(1.5.1) 命令。
  • 命令bin/jruby 看起来像这样:

(bin/jruby)

export jruby_build=1.6.3
export GEM_HOME= ~/tools/ruby/gems
java -jar ~/.m2/repository/org/jruby/jruby-complete/${jruby_build}/jruby-complete-${jruby_build}.jar -S $*
  • 环境变量:

(环境)

GEM_HOME=~/tools/ruby/gems
GEM_PATH=~/tools/ruby/gems

【问题讨论】:

    标签: rubygems gem jruby


    【解决方案1】:

    如果您可以让 update_rubygems 工作,那很好,但请注意,这可能会导致某些 JRuby 特定的扩展不再工作(例如,maven 集成)。我们将 RubyGems 与 JRuby 版本一起发布,以确保我们的扩展与我们发布的版本兼容。

    【讨论】:

    • 我还没有成功。 (我不得不把它放在一边,只是解决这个问题 - 不管它可能)。
    • 如何解决 gem 无法安装的问题? jruby 附带的 ruby​​gems 版本(甚至是 1.6.4)不允许安装 gem。它死得很惨。
    【解决方案2】:

    安装了rubygems-update,接下来需要执行命令:

    jruby -S update_rubygems
    

    从那时起,您应该可以使用正常的命令,即

    jruby -S gem update --system
    

    【讨论】:

    • 没有。请查看我提供的 bin/jruby 代码。我确实提供了“-S”选项。
    • 嗯,我在看,但我没看到。但无论如何,-S 不是问题。问题是您使用了install 命令而不是update 命令,这正是我想要指出的。
    • 当我创建问题时,我忘了包括我确实尝试过进行 gem 更新但也没有成功。
    • (修改原题)
    • (修改答案以适应)
    猜你喜欢
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多