2016-04-24 30 views
0

我正在嘗試配置Rubymine 6.3.3以使用我的流浪虛擬機中的Ruby SDK和Gems。我爲什麼在設置「Ruby SDK和Gems」使用Vagrant的時候在Rubymine中「錯誤複製Gems」

盧西丁(至少6.3.3)已經內置了對此的支持。要設置它,我做到以下幾點:

  1. 點擊「文件」 - >「設置」
  2. 點擊節「紅寶石SDK和寶石」
  3. 通過點擊添加新的遠程的「+ 「添加選項 - >」新建遠程「
  4. 單擊」配置遠程Ruby解釋器「對話框中的」從遠程配置文件填充「按鈕,該對話框默認爲以下設置(我會覆蓋默認密鑰對設置而不是使用密碼) :
    • 主機:127.0.0.1
    • 端口:2222
    • 用戶名:流浪漢
    • 驗證類型:密碼
    • 密碼:流浪漢
    • Ruby解釋器路徑:在/ usr/bin/ruby​​(在客戶操作系統上用$ which ruby驗證)
  5. 測試連接,點擊「測試連接」按鈕,這是成功的
  6. 單擊「確定」完成

當下載的寶石,它遞歸去越陷越深到/ usr /斌/ X11 /目錄,如:

  • 在/ usr/bin中/ X11/GTK推出
  • 在/ usr/bin中/ X11/X11/GTK推出
  • 在/ usr/bin中/ X11/X11/X11/gtk-launch
  • 在/ 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". 

一旦點擊OK,它能夠在下載寶石卡在嘗試另一種循環,並單擊確定第二次後同樣的錯誤消息,它退出,只顯示我的新的「Ruby SDK和Gems」配置沒有寶石。

虛擬機已安裝了以下版本:

[email protected]:/vagrant $ ruby -v 
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux-gnu] 
[email protected]:/vagrant/ $ bundle -v 
Bundler version 1.11.2 
[email protected]:/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的正確配置這些寶石?

回答

0

問題是Ubuntu的/usr/bin/X11 =>/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