2009-11-18 67 views
1

我最近學習寶石,和一個錯誤我得到的是:

WARNING: Installing to ~/.gem since /Library/Ruby/Gems/1.8 and 
    /usr/bin aren't both writable. 
WARNING: You don't have /Users/Alex/.gem/ruby/1.8/bin in your PATH, 
gem executables will not run. 
ERROR: Error installing rubygame: 
ffi requires rake (>= 0.8.7, runtime) 

我明白,UNIX(bash中,更具體)使用這個.bash_profile文件中知道到哪裏尋找可執行文件,當我運行一個腳本/命令,並且它是「按順序」這樣做的。

我的問題是:我是否可以在需要的時候繼續粘貼目錄,並且這樣做是否可以讓我打開任何東西?

(對於它的價值,我重新運行該命令「須藤寶石......」,它仍然說:「ERROR: Error installing rubygame: ffi requires rake (>= 0.8.7, runtime)

回答

3

你可以添加東西到PATH的結尾(或頂部),直到你達到了一個變量的長度限制,這是一個變量,它是loooooong

但它減慢命令搜索。每次你輸入一個命令的可執行文件搜索每一個PATH告訴它搜索直到找到。命令錯別字可能會導致不存在的文件,並且這些文件可能會緩慢排序。

+1

所有現代的炮彈緩存。 – 2009-11-18 01:39:47

+0

實際上它取決於shell(用於搜索命令)。像zsh這樣一個聰明的shell(每個人都應該使用它:P)保存所有可用命令的哈希表,這就是爲什麼在安裝某些東西后你需要做「重新哈希」的原因。 – 2009-11-18 01:39:49

+0

Ehm,* bash做哈希*。 (檢查'幫助哈希')這是**懶惰**哈希,是的。它不搜索它沒有找到的東西。然後,也可以手動重做散列路徑的主動散列,這可以證明是一個長期的操作。 – ZJR 2009-11-18 02:26:35

0

我不知道的任何限制多久$ PATH VAR或者任何一個env var都可以,但是我猜環境變量一般是有限制的,總共有65KB,仍然不確定

1

我相信bash會緩存可執行文件的位置,所以即使你有一個長PATH,運行程序也不需要更長的時間。

你可以嘗試sudo gem update rake爲最後一個錯誤......

相關問題