为什么我在设置“Ruby SDK和Gems”以使用Vagrant时会在Rubymine中“错误复制Gems”

时间:2016-04-24 14:11:20

标签: ruby rubygems vagrant rubymine

我正在尝试配置Rubymine 6.3.3以使用我的流浪虚拟机中的Ruby SDK和gem。

Rubymine(至少6.3.3)内置了对此的支持。要进行设置,我会执行以下操作:

  1. 点击“文件” - > “设置”
  2. 点击“Ruby SDK and Gems”部分
  3. 点击“+”添加选项添加新的遥控器 - > “新遥控”
  4. 单击“配置远程Ruby解释器”对话框中的“填充Vagrant配置”按钮,该对话框默认为以下设置(我覆盖默认密钥对设置而不是使用密码):
    • 主机:127.0.0.1
    • 端口:2222
    • 用户名:vagrant
    • 验证类型:密码
    • 密码:vagrant
    • Ruby解释器路径:/ usr / bin / ruby​​(在来宾操作系统上使用$ which ruby验证)
  5. 单击“测试连接”按钮,测试连接,该按钮成功
  6. 点击“确定”完成
  7. 下载宝石时,它会递归地越来越深入/ usr / bin / X11 /目录,如:

    • 的/ usr / bin中/ X11 / GTK的发射
    • 的/ usr / bin中/ X11 / X11 / GTK的发射
    • 的/ usr / bin中/ X11 / X11 / X11 / GTK的发射
    • 的/ usr / bin中/ X11 / X11 / X11 / X11 / GTK的发射

    在该循环中陷入困境一段时间之后,它会陷入下载各种宝石的循环中,并创建一个文件夹(我无法看到哪个文件夹,因为它闪烁得太快)。

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

    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".
    

    单击“确定”后,它会再次尝试下载宝石,并在再次单击“确定”第二次出现相同的错误消息后退出,然后只显示我的新“Ruby SDK and 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不能正确配置这些宝石?

1 个答案:

答案 0 :(得分:0)

问题是来自/usr/bin/X11 =>的符号链接Ubuntu有/usr/bin/。这导致RubyMine沿递归/usr/bin/X11/X11/X11/"路径发送,试图找到宝石,最终导致错误。

由于OS仅通过Vagrant用作虚拟机,因此我删除了/ usr / bin / X11符号链接。这允许RubyMine找到宝石,一切都按预期工作。

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