Назад | Перейти на главную страницу

Я обновился до леопарда, и все работает нормально, кроме рубина и рельсов

Я только что обновил Mac OS X до версии 10.5. После небольшой любви к Apache все работает отлично, кроме рубина и рельсов. Вот что я вижу

Macintosh:~ TAmoyal$ ruby test.rb 
-bash: /usr/local/bin/ruby: cannot execute binary file

Macintosh:bin TAmoyal$ file ruby
ruby: Mach-O executable i386

Macintosh:~ TAmoyal$ ruby
-bash: /usr/local/bin/ruby: cannot execute binary file

Macintosh:~ TAmoyal$ rails
/usr/local/bin/rails: line 9: require: command not found
/usr/local/bin/rails: line 11: version: command not found
/usr/local/bin/rails: line 13: syntax error near unexpected token `('
/usr/local/bin/rails: line 13: `if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then'

Однако рубин в / usr / bin / ruby, похоже, работает нормально. К нему не привыкать.

Я, очевидно, должен заставить рубин работать, прежде чем рельсы заработают. Я не нашел особой помощи в поиске в Google проблемы с рубином. Я даже не совсем понимаю, что мне говорит OS X.

Какие-либо предложения?

Спасибо!

/ usr / bin / ruby ​​test.rb должен использовать интерпретатор Ruby, установленный в системе 10.5. Поскольку вы обновились, я бы переустановил вашу несистемную версию Ruby, инструкции.

Версия Ruby Leopard (Apple) поставляется с инструменты разработчика. Вы увидите это в начиная часть рельс сайта. Просто выполните установку с помощью gem update rails. Хотя я думаю, что мне пришлось сделать дополнительный шаг, например gem update в общем, чтобы все заработало.

ТАКЖЕ, так как вы установили рельсы на 10.? и, предположительно, исправленный рубин в процессе (но не для 10.5, поскольку, если вы были на <10.3.9, вы обнаружите, что он не совместим с двоичным кодом с 10.5), вам может или не потребоваться удалить двоичный файл. На моей машине 10.5.x рубин (из инструментов разработчика) живет в /usr/bin/ не /usr/local/bin/.

Вероятно, вы не использовали упакованную рубиновую версию на Tiger, теперь, когда вы обновились до Leopard, предоставленный рубин имеет приоритет в пути. Наиболее очевидным признаком этого является то, что ваши драгоценные камни (которые жестко запрограммированы с указанием пути интерпретатора ruby, против которого они были установлены) будут отсутствовать.

Вы либо установили Ruby вручную, либо использовали что-то вроде fink.

Моя рекомендация - установить MacPorts, затем установите ruby, и rb-rubygems портов, затем убедитесь, что /opt/local/bin предшествует /usr/bin и /usr/local/bin