【问题标题】:Why am I Getting "Error Copying Gems" in Rubymine while setting "Ruby SDK and Gems" to use Vagrant为什么我在设置“Ruby SDK 和 Gems”以使用 Vagrant 时在 Rubymine 中出现“错误复制 Gems”
【发布时间】:2016-04-24 14:11:19
【问题描述】:

我正在尝试将 Rubymine 6.3.3 配置为使用我的 vagrant 虚拟机中的 Ruby SDK 和 gem。

Rubymine(至少 6.3.3)对此具有内置支持。要设置它,我执行以下操作:

  1. 点击“文件”->“设置”
  2. 点击“Ruby SDK 和 Gems”部分
  3. 通过单击“+”添加选项添加新遥控器 -> “新遥控器”
  4. 在“配置远程 Ruby 解释器”对话框中单击“从 Vagrant Config 填充”按钮,默认设置为以下设置(我覆盖了默认密钥对设置,改为使用密码):
    • 主机:127.0.0.1
    • 端口:2222
    • 用户名:流浪者
    • 授权类型:密码
    • 密码:vagrant
    • Ruby 解释器路径:/usr/bin/ruby(在客户操作系统上使用$ which ruby 验证)
  5. 测试连接,点击“测试连接”按钮,成功
  6. 点击“确定”完成

下载 gems 时,它会递归地深入到 /usr/bin/X11/ 目录中,例如:

  • /usr/bin/X11/gtk-launch
  • /usr/bin/X11/X11/gtk-launch
  • /usr/bin/X11/X11/X11/gtk-launch
  • /usr/bin/X11/X11/X11/X11/gtk-launch

在陷入该循环一段时间后,它陷入了下载各种 gem 并创建文件夹的循环中(我看不到哪个文件夹,因为它闪烁得太快)。

它最终以“错误复制宝石”对话结束:

Could not copy "sftp://127.0.0.1:2222/usr/bin/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/x86_64-linux-gnu-gcc-nm" to "file:///home/billy/.RubyMine60/system/ruby_stubs/-828640210/170586877/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/X11/x86_64-linux-gnu-gcc-nm".

单击“确定”后,它会陷入另一个尝试下载 gems 的循环中,并且在第二次单击“确定”以显示相同的错误消息后,它会退出,并仅显示我的新“Ruby SDK 和 Gems”配置没有宝石。

虚拟机安装了以下版本:

vagrant@rails-dev-box:/vagrant $ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux-gnu]
vagrant@rails-dev-box:/vagrant/ $ bundle -v
Bundler version 1.11.2
vagrant@rails-dev-box:/vagrant/ $ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.5.1
  - RUBY VERSION: 2.2.4 (2015-12-16 patchlevel 230) [x86_64-linux-gnu]
  - INSTALLATION DIRECTORY: /var/lib/gems/2.2.0
  - RUBY EXECUTABLE: /usr/bin/ruby2.2
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /home/vagrant/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/2.2.0
     - /home/vagrant/.gem/ruby/2.2.0
     - /usr/share/rubygems-integration/2.2.0
     - /usr/share/rubygems-integration/all
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games

为什么 Rubymine 不能正确配置这些 gem?

【问题讨论】:

    标签: ruby rubygems vagrant rubymine


    【解决方案1】:

    问题是来自 Ubuntu 的 /usr/bin/X11 => /usr/bin/ 的符号链接。这使 RubyMine 沿着递归 /usr/bin/X11/X11/X11/" 路径尝试查找 gem,最终导致错误。

    由于操作系统仅通过 Vagrant 用作虚拟机,因此我删除了 /usr/bin/X11 符号链接。这使 RubyMine 能够找到宝石,并且一切都按预期工作。

    注意:有一个valid reason 表示此符号链接的存在。这个答案只是 RubyMine 7.0 之前版本的一种解决方法,就像 peculiar bug was fixed in RubyMine 7.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-22
      • 2010-11-28
      • 2011-06-23
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多