7

我在 Windows 上运行多个版本的 Ruby(和 Rails)并使用 Pik 在它们之间切换。在命令行,我可以调用

> pik list
186: ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
192: ruby 1.9.2p0 (2010-08-18) [i386-mingw32]

获取可用的 ruby​​ 版本列表,并使用

> pik 192

> ruby -v
ruby 1.9.2p0 (2010-08-18) [i386-mingw32]

使 ruby​​ 1.9.2 成为活动版本:

我不能在git bash中做同样的事情:

 $ pik list
 sh.exe": pik: command not found

而且ruby的版本还是1.8.6

$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

似乎 git bash 看不到 pik 的路径。有没有办法改变 git bash 中的路径,或者有另一种方法在 git bash 中运行 pik?

4

3 回答 3

10

就目前而言,最后一个答案是正确的。但是,在 Windows 系统上,$USERPROFILE 环境变量设置为:C:\Documents and Settings\username。

路径中的空格会导致命令被错误地解释。这个更好:

[[ -s "$USERPROFILE/.pik/.pikrc" ]] && source "$USERPROFILE/.pik/.pikrc"

请注意上面代码片段中路径周围的引号。

此外,您的 .bashrc 文件(或 .bash_profile 文件)应位于 USERPROFILE 环境变量指定的目录中,例如 - C:\Documents and Settings\username。

于 2011-05-26T18:59:49.913 回答
3

我不得不编辑 .bash_profile 和 .pikrc

.bash_profile:

[[ -s "$USERPROFILE/.pik/.pikrc" ]] && source "$USERPROFILE/.pik/.pikrc"

.pikrc

#!/bin/sh
pik_path="/c/Program Files/pik"

function pik  {
  "$pik_path/pik_runner.exe" pik.sh $@
  [[ -s "$USERPROFILE/.pik/pik.sh" ]] && source "$USERPROFILE/.pik/pik.sh"
} 

仅当路径中有空格(如“程序文件”)时,才需要在路径周围加上引号。

于 2012-03-20T08:09:36.590 回答
2

请确保您已安装最新版本的 Pik (0.2.8)。在 Git Bash 下打开您的用户配置文件.bash_profile或类似文件,并确保它包含以下代码:

[[ -s $USERPROFILE/.pik/.pikrc ]] && source $USERPROFILE/.pik/.pikrc

从那里你应该能够从 Git Bash 终端调用 pik 。

希望有帮助

于 2010-10-26T12:14:12.993 回答