I'm running multiple versions of Ruby (and Rails) on Windows and use Pik to switch between them. At the command line, I'm able to call
> pik list
186: ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
192: ruby 1.9.2p0 (2010-08-18) [i386-mingw32]
to get a list of ruby versions available, and use
> pik 192
> ruby -v
ruby 1.9.2p0 (2010-08-18) [i386-mingw32]
to make ruby 1.9.2 the active version:
I am not able to do the same in git bash:
$ pik list
sh.exe": pik: command not found
and the version of ruby is still 1.8.6
$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
It seems like git bash can't see the path to pik. Is there a way to alter the path within git bash or is there another way to run pik in git bash?
The last answer is correct as far as it goes. However, on Windows systems the $USERPROFILE environment variable is set to something like: C:\Documents and Settings\username.
The spaces in the path cause the command to be interpreted improperly. This is better:
[[ -s "$USERPROFILE/.pik/.pikrc" ]] && source "$USERPROFILE/.pik/.pikrc"
Note the quotes around the paths in the code snippet above.
Additionally, your .bashrc file (or .bash_profile file) should be located within the directory specified by the USERPROFILE environment variable, e.g. - C:\Documents and Settings\username.
I had to edit .bash_profile and .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"
}
Having quotes around the paths is only necessary if you have spaces in the path (like "Program Files").
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With