Я только что обновил 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