Bash в Emacs + OSX не находит гемы, установленные через Terminal.app? - PullRequest
3 голосов
/ 10 августа 2009

Я запускаю bash в emacs на osx и вытащил его из другого места, чем Terminal.app

в bash:

which gem
/usr/bin/gem

в терминале:

which gem
/opt/local/bin/gem

Как изменить bash для соответствия терминалам?

1 Ответ

7 голосов
/ 10 августа 2009

Я предполагаю, что $PATH отличается в оболочке emacs bash. Вы можете проверить это, выполнив эту команду в каждом.

echo $PATH

Это путь поиска, используемый для поиска команд. Вы должны включить в него / opt / local / bin.

export PATH="/opt/local/bin:$PATH"

Поместите эту строку внутри вашего ~/.bashrc файла, и она должна быть подхвачена bash при использовании в emacs (если она не запущена под другим пользователем или чем-то еще).


Обновление:

Как упоминалось в комментариях Singletoned, Emacs не будет загружать ~/.bash_profile или ~/.profile, а Терминал будет. Этот файл, скорее всего, уже содержит это определение PATH, в результате чего они ведут себя по-разному.

Я рекомендую переместить определение PATH из файла bash_profile в bashrc. Однако Терминал не будет загружать bashrc, если существует bash_profile.

Решение состоит в том, чтобы добавить это к ~/.bash_profile.

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

Затем вы можете переместить все остальное в bashrc, который будет включен в bash_profile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...