2011-12-01 22 views
4

我最近開始在運行gem或bundler時出現這個錯誤。 我記得我最近改變的唯一事情就是升級我的git版本。windows上的gems錯誤 - 「openpath:pathname too long」

我正在使用MINGW32作爲shell,並且這已經完美工作了一年多。

我確定git在我的PATH中,現在不知道下一步要查找什麼。

接下來我能解決這個問題的方法是什麼?

這裏是我得到的輸出的一個例子。這個例子顯示了Heroku的寶石,但束運行時,我得到了相同的結果安裝

$ heroku console 
openpath: pathname too long (ignored) 
     Directory "" 
     File "chcp" 
openpath: pathname too long (ignored) 
     Directory "" 
     File "git" 
c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/helpers.rb:111:in ``': No such file or directory - git --version (Errno::ENOENT) 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/helpers.rb:111:in `has_git?' 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/helpers.rb:116:in `git' 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/command/base.rb:192:in `git_remotes' 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/command/base.rb:170:in `extract_app_in_dir' 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/command/base.rb:162:in `extract_app' 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/command/run.rb:72:in `console' 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/lib/heroku/command.rb:114:in `run' 
     from c:/Ruby192/lib/ruby/gems/1.9.1/gems/heroku-2.14.0/bin/heroku:14:in `<top (required)>' 
     from c:/Ruby192/bin/heroku:19:in `load' 
     from c:/Ruby192/bin/heroku:19:in `<main>' 

,這裏是上面提到的helpers.rb線111。

def has_git? 
    %x{ git --version } #this is 111 
    $?.success? 
end 
+0

你已經知道了嗎?它看起來像ruby無法運行或找到你的git可執行文件。 – Casper

回答

4

此錯誤消息來自dln_find.c文件在Ruby中,當它試圖產生比系統上的MAXPATHLEN值長的路徑會拋出這個錯誤。

根據this MSDN reference,Windows API中許多函數的最大路徑長度僅爲248個字符 - 因此,我猜想MAXPATHLEN在Ruby-for-Windows源中被定義爲248。 (或者,dln_find.c源將其定義爲1024,如果它不另行定義。)

有一些的,如果你是程序員,你也許可以在程序中解決這個問題的方法,但是在用戶的解決方案級別可能是您必須使用名稱較短的目錄。 (所以,什麼目錄需要更短?這個錯誤信息告訴你它要加載的文件是chcpgit。也許你的git升級改變了它的目錄名稱到很長的時間,並且你需要將它移動到某個短名稱的地方?或者...它看起來像這個查找代碼可能會迭代你的環境變量中的每個條目並檢查它並拋出一個「太長」的錯誤,如果有任何可能的話太長了 - 也許你的PATH已經損壞或者有一個新的很長的條目?)

+0

謝謝,我還沒有機會驗證,但會獎勵賞金,因爲我認爲這是一個非常好的答案,具有優秀的細節,它給了我多個地方開始chceking。非常感謝你。 – jasonmw

+0

不客氣!當你有機會開始檢查時,我會很有興趣知道你發現了什麼。 –

+0

我從我的下載文件夾安裝Eclipse時遇到過類似的問題。我的修復是將安裝文件(一個zip文件)移動到根目錄下的一個文件夾中,並重命名它。我不再有那個錯誤。不知道這是不是最好的方法,但它讓我超越了這個問題。 – Yosem

相關問題