【问题标题】:Trouble with gems installation in JRuby with RVM使用 RVM 在 JRuby 中安装 gems 的问题
【发布时间】:2014-07-05 16:42:13
【问题描述】:

我正在使用 Linux Mint。我已经安装了jruby和jdk。

当我检查 ruby​​ 版本时,它给了我正确的信息

ruby -v jruby 1.7.11 (1.9.3p392) 2014-02-24 86339bb on Java HotSpot(TM) Server VM 1.8.0_05-b13 +indy [linux-i386]

但是当我尝试安装一些这样的 gem 时:

gem install bundler

它给了我这个信息:

ERROR: While executing gem ... (SocketError) recv: name or service not known

哪个jruby /home/msdc/.rvm/rubies/jruby-1.7.11/bin/jruby

哪个宝石

/home/msdc/.rvm/rubies/jruby-1.7.11/bin/gem

宝石环境

RubyGems Environment: - RUBYGEMS VERSION: 2.2.2 - RUBY VERSION: 1.9.3 (2014-02-24 patchlevel 392) [java] - INSTALLATION DIRECTORY: /home/msdc/.rvm/gems/jruby-1.7.11 - RUBY EXECUTABLE: /home/msdc/.rvm/rubies/jruby-1.7.11/bin/jruby - EXECUTABLE DIRECTORY: /home/msdc/.rvm/gems/jruby-1.7.11/bin - SPEC CACHE DIRECTORY: /home/msdc/.gem/specs - RUBYGEMS PLATFORMS: - ruby - universal-java-1.8 - GEM PATHS: - /home/msdc/.rvm/gems/jruby-1.7.11 - /home/msdc/.rvm/gems/jruby-1.7.11@global - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - "install" => "--no-rdoc --no-ri --env-shebang" - "update" => "--no-rdoc --no-ri --env-shebang" - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /home/msdc/.rvm/gems/jruby-1.7.11/bin - /home/msdc/.rvm/gems/jruby-1.7.11@global/bin - /home/msdc/.rvm/rubies/jruby-1.7.11/bin - /usr/local/sbin - /usr/local/bin - /usr/sbin - /usr/bin - /sbin - /bin - /usr/games - /home/msdc/bin - /usr/local/java/jdk1.8.0_05/bin - /home/msdc/bin - /usr/local/java/jdk1.8.0_05/jre/bin - /home/msdc/bin - /usr/local/java/jdk1.8.0_05/bin - /home/msdc/bin - /usr/local/java/jdk1.8.0_05/jre/bin - /home/msdc/.rvm/bin

当我在调试模式下运行 gem install bundler 时,它给了我这个:

/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:775:in `recv_reply'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:663:in `request'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:511:in `each_resource'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:0:in `resolv'
org/jruby/RubyArray.java:1613:in `each'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:1026:in `resolv'
org/jruby/RubyArray.java:1613:in `each'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:1025:in `resolv'
org/jruby/RubyArray.java:1613:in `each'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:1023:in `resolv'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:503:in `each_resource'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/1.9/resolv.rb:480:in `getresource'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/remote_fetcher.rb:88:in `api_endpoint'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/source.rb:42:in `api_uri'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/source.rb:170:in `load_specs'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/spec_fetcher.rb:265:in `tuples_for'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/spec_fetcher.rb:226:in `available_specs'
org/jruby/RubyArray.java:1613:in `each'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/source_list.rb:97:in `each_source'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/spec_fetcher.rb:222:in `available_specs'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/spec_fetcher.rb:102:in `search_for_dependency'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/dependency_installer.rb:216:in `find_gems_with_sources'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/dependency_installer.rb:292:in `find_spec_by_name_and_version'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/dependency_installer.rb:166:in `available_set_for'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/dependency_installer.rb:418:in `resolve_dependencies'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/dependency_installer.rb:371:in `install'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/commands/install_command.rb:219:in `install_gem'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/commands/install_command.rb:263:in `install_gems'
org/jruby/RubyArray.java:1613:in `each'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/commands/install_command.rb:259:in `install_gems'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/commands/install_command.rb:171:in `execute'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/command.rb:305:in `invoke_with_build_args'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/command_manager.rb:167:in `process_args'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/command_manager.rb:137:in `run'
/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/gem_runner.rb:54:in `run'
/home/msdc/.rvm/rubies/jruby-1.7.11/bin/jgem:21:in `(root)'
org/jruby/RubyKernel.java:1101:in `load'
/home/msdc/.rvm/rubies/jruby-1.7.11/bin/gem:4:in `(root)'

/home/msdc/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/user_interaction.rb:381 处的异常 `Gem::SystemExitException' - 使用 exit_code 1 退出 RubyGems

【问题讨论】:

  • +indy (Java 8) 存在一些问题...也许,只是为了确保它不会干扰,我会尝试安装 Java 7(而不仅仅是更改 export JAVA_HOME=/opt/java/7/home
  • 我尝试降级到 Java 1.7.0_55 版本,但报同样的错误:ERROR: While executing gem ... (SocketError) recv: name or service not known
  • 您的 DNS 解析很可能有问题(在回溯之后)。所以我会尝试通过遵循Resolv 的源代码并确保Socket.gethostbyname("rubygems.org") 等代码首先工作(在irb 中)来解决这个问题。
  • Socket 在 irb 中工作,它给了我这个命令:["ec2-54-245-255-174.us-west-2.compute.amazonaws.com", [], 2, "6\xF5\xFF\xAE"]

标签: ruby rubygems rvm jruby


【解决方案1】:

我建议尝试http://rubygems.org 看看是否可行。 https 应该可以工作,但至少你会更准确地知道问题出在哪里。您可能会在 ~/.gemrc 文件中找到此配置信息。

【讨论】:

  • 这很奇怪,但我已经解决了切换到 jruby-1.7.13 的问题。在 jruby-1.7.12 中安装 gem 不起作用,但在 jruby-1.7.13 中可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
相关资源
最近更新 更多