Ошибка $ PATH на снежном барсе или проблема установки RoR ?? плохой переводчик - PullRequest
1 голос
/ 15 ноября 2009

Я на снежном барсе и установил рубин, рубины и рельсы Гивелогический путь Когда я переключаюсь на свой новый проект jekyll (~ / Documents / blog / jekyll) и запускаю

[jekyll]$jekyll --server-bash

Я получаю:

[jekyll]$jekyll --server-bash: /usr/bin/jekyll: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory

Интересы могут быть:

[jekyll]$which ruby
/usr/local/bin/ruby

И где я предполагаю, что проблема:

[jekyll]$echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:~/.gem/ruby/1.8/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:~/.gem/ruby/1.8/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:~/.gem/ruby/1.8/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:~/.gem/ruby/1.8/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:~/.gem/ruby/1.8/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:~/.gem:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/local/bin/:/Users/Joe/.gem:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/local/bin/:/Users/Joe/.gem:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/local/bin/:/usr/local/bin/gem:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/.gem/ruby/1.8/bin:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools:/Users/Joe/.gem/ruby/1.8/bin:/Users/Joe/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools

Соответствующая часть моего bash_profile:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH                            
export MANPATH=/opt/local/share/man:$MANPATH
export PATH=${PATH}:~/Documents/sdks/android-sdk-mac_x86-1.6_r1/tools
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

Ответы [ 2 ]

2 голосов
/ 16 ноября 2009

Ваш $PATH беспорядок. Вы показываете bash_profile, который я предполагаю ~/.bash_profile, но вы не показываете /etc/profile или ~/.bashrc или /etc/bash.bashrc. Последние два получены при запуске интерактивной оболочки без входа в систему, как вы получаете, когда вы используете Terminal.app. «Профильные» поставляются для оболочек входа в систему. Один может быть источником другого, если они настроены таким образом.

Если у вас есть PATH="something:$PATH", который выполняется многократно, потому что у вас есть один или несколько из перечисленных выше файлов, получающих друг друга, это может привести к беспорядку.

Однако проблема с сообщением «плохой интерпретатор» может не иметь никакого отношения к вашему $PATH. Это сообщение означает, что шебанг (в вашем случае #!/some/path/to/ruby, я думаю) в файле сценария отличается от того, где фактически установлен Ruby. Вот почему вы часто будете видеть шебанги, которые выглядят как #!/usr/bin/env python, поэтому env выяснит через $PATH, где находится Python (в данном случае).

1 голос
/ 16 ноября 2009

ввод

export PATH=/~/.gem:$PATH    

в моем ~ / .bash_profile сделал трюк

...