Как я могу использовать Pik для Ruby в Git Bash на Windows? - PullRequest
7 голосов
/ 26 октября 2010

Я использую несколько версий Ruby (и Rails) в Windows и использую 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 или есть другой способ запустить pik в git bash?

Ответы [ 3 ]

10 голосов
/ 26 мая 2011

Последний ответ правильный, насколько это возможно.Однако в системах Windows переменная среды $ USERPROFILE имеет значение, аналогичное следующему: C: \ Documents and Settings \ username.

Пробелы в пути приводят к неправильной интерпретации команды.Это лучше:

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

Обратите внимание на кавычки вокруг путей в приведенном выше фрагменте кода.

Кроме того, ваш файл .bashrc (или файл .bash_profile) должен находиться в указанном каталогес помощью переменной среды USERPROFILE, например - C: \ Documents and Settings \ username.

3 голосов
/ 20 марта 2012

Мне пришлось редактировать .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"
} 

Наличие кавычек вокруг путей необходимо, только еслив пути есть пробелы (например, «Program Files»).

2 голосов
/ 26 октября 2010

Убедитесь, что у вас установлена ​​последняя версия Pik (0.2.8).Откройте свой профиль пользователя .bash_profile или аналогичный в Git Bash и убедитесь, что он содержит следующий код:

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

Оттуда вы сможете вызывать pik из терминала Git Bash.

Надеюсь, это поможет

...