2010-02-16 42 views
4

如果你被困在Windows機器上,Pik看起來很棒。唯一的問題是它似乎設置爲Windows命令提示符,並且我正在使用cygwin。
每當我嘗試在cygwin中切換到不同版本的ruby時,它仍然只使用默認的cygwin安裝ruby。如何讓pik gem在Windows XP中與cygwin一起玩得很好?還是有另一種方式來獲取多個版本的ruby並運行在cygwin中?

$ pik list 
186: ruby 1.8.6 (2009-06-08 patchlevel 369) [i386-mswin32] 
187: ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin] * 
187: ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32] 
191: ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] 

$ pik switch 191 

$ pik list 
186: ruby 1.8.6 (2009-06-08 patchlevel 369) [i386-mswin32] 
187: ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin] * 
187: ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32] 
191: ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] 

似乎並不重要我嘗試 - 它總是默認爲cygwin安裝。如果我在Windows命令提示符下測試它,一切正常。這只是cygwin以某種方式阻礙了我,如果我放棄我的cygwin來處理蹩腳的XP命令行,我會被詛咒的。 :}

回答

3

所以我放棄了pik,並在mac/linux系統上使用了一個(對我來說至少是)通用的方法。 我將我想要的各種ruby版本的編譯後的二進制文件解壓到/ tools/ruby​​中。然後,我在我的.zshrc中創建了一些別名'ruby191'等,它們創建了我想要的/tools/current_ruby中的紅寶石版本的符號鏈接。在任何系統安裝的ruby和voila版本之前,將/tools/current_ruby/bin添加到您的路徑中,您就可以開始了。
如果您想安裝rubygems,只需下載rubygems.zip,切換到您要安裝gem的ruby版本並在rubygems目錄中運行ruby setup.rb。我現在有四個不同的ruby版本,每個版本都安裝了rubygems,並在我的機器上運行。
這顯然只適用於cygwin,因爲windows根本不理解符號鏈接。但是,捅一下,它似乎工作得很好。

+0

很可能,Cygwin只是在命令行鍵入'which ruby​​'時運行列出的ruby可執行文件。另一種方法是將不同版本的ruby安裝到不同的目錄中,然後'chroot'進入這些目錄並從那裏運行ruby。這樣,Cygwin就無法查找默認的ruby版本(當你在'chroot'監獄中時,'$ PATH'中列出的目錄不再存在)。 – bta 2010-02-16 21:24:26

+0

是的,它只是拾取路徑中的第一顆紅寶石。但是如果你確定current_ruby/bin是第一個在路徑中,那麼你很好。 chroot聽起來也是一個體面的解決方案。 – bergyman 2010-02-17 16:33:03

+0

那麼爲什麼有人會低估這一點呢?這個解決方案對我來說已經工作了近一個月了。 – bergyman 2010-03-12 20:37:57