Установка Ruby on Rails на Mac

Чтобы установить RoR на моем Mac (v10.9.2), я решил следовать инструкциям для Ruby 1.9.2 здесь: /questions/34838944/ustanovka-ruby-on-rails-mac-os-lion/34838948#34838948

"rvm install 1.9.2" занимал слишком много времени, поэтому, основываясь на предложениях по SO, я использовал "rvm требованиям", чтобы установить каждое из требований по отдельности с помощью macports. Затем я выполнил "rvm install 1.9.2", и он работал намного быстрее.

Когда я попытался выполнить "gem install rail", я получил сообщение об ошибке

activesupport требует версии Ruby>= 1.9.3

В результате я вернулся и попробовал снова с 1.9.3:

rvm install 1.9.3
rvm --default 1.9.3
gem update
gem install rails

На этот раз, во время команды установки rails, процесс застрял при установке документации для rails. Я решил прервать и запустить вместо этого:

gem install --no-ri --no-rdoc rails

Это сработало! Я запустил следующее:

rails new pong; cd pong; rails generate controller welcome index

Последняя команда в этой строке выдала мне следующую ошибку:

/Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/sid.rb:17:in fiddle_func': uninitialized constant Spring::SID::DL (NameError) from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/sid.rb:30:in sid 'из /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/sid.rb:39:in pgid' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/server.rb:78:in set_pgid 'из /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/server.rb:34:in boot' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/server.rb:14:in boot 'из /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:36:in block in boot_server' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:34:in fork 'из /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:34:in boot_server' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:18:in call 'from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/command.rb:7:in call' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/rails.rb:23:in call 'from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/command.rb:7:in call' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client.rb:26:in запустить 'из /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/bin/spring:48:in <top (required)>' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/binstub.rb:11:in load 'из /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/binstub.rb:11:in <top (required)>' from /Users/me/Coding/pong/bin/spring:16:in require 'from / Users / me / Coding / pong / bin / spring: 16: in <top (required)>' from bin/rails:3:inзагрузить 'из бункера / рельсов:3: в `'

Основываясь на предложениях, прочитанных здесь и здесь и в других местах, я решил попробовать другой компилятор:

port install gcc46
CC=`which gcc-mp-4.6`
rvm reinstall 1.9.3
gem install
rvm reinstall 1.9.3

Та же проблема и с этой установкой.

2 ответа

Решение

Я смог добиться успеха, смешав совет Эндрю со здравым смыслом...

Я сначала убрал беспорядок, который я сделал:

sudo rvm remove 1.9.2
sudo rvm remove 1.9.3
sudo rvm remove 1.9.3-p545
sudo gem uninstall spring-commands-rspec
sudo gem pristine -a
sudo port uninstall rvm

Я тогда переустанавливал рвм

sudo port install rvm

и переустановил Ruby 1.9.3 с рельсами:

sudo rvm install 1.9.3
sudo gem update
sudo gem install --no-ri --no-rdoc rails

Проблема, как описано выше, все еще возникла.

Затем я вспомнил, что получил следующее сообщение при установке Ruby (подтверждающий комментарий Эндрю):

ВНИМАНИЕ: Помните, что вы только что установили рубин, который больше не поддерживается (2014-02-23), для просмотра списка посещенных рубинов:

http://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering

Пожалуйста, рассмотрите возможность обновления до ruby-2.1.1, который будет иметь все последние исправления безопасности.

Итак, я снова прибрался:

sudo rvm remove 1.9.3
sudo rvm remove 1.9.3-p545
sudo gem uninstall spring-commands-rspec
sudo gem pristine -a

Затем я попытался установить Ruby 2.1.1 и Rails:

sudo rvm install 2.1.1
sudo gem update
sudo gem install --no-ri --no-rdoc rails

На этот раз я не получил ошибок при попытке запустить

rails new pong; cd pong; rails generate controller welcome index

Это не идеальный ответ, потому что я все еще не мог заставить работать 1.9.3, но это соответствует моим целям (я думаю). У кого-нибудь есть теории, объясняющие, почему 1.9.3 не работает?

Спасибо,

Grasswistle

Я подозреваю, что прерывание этих сборок могло привести к плохому состоянию. Прежде всего, удалите 1.9.2. 1.9.3-p545 является самой старой поддерживаемой версией, по крайней мере, на данный момент.

Затем удалите gem 'spring-commands-rspec' и запустите gem pristine -all. Затем выполните другую установку пакета. FWIW, я могу запустить весной на моем MacBook 10.9.2. Возможно, вам придется переустановить инструменты командной строки xcode, если ваш gcc дает вам проблемы.

Помимо всего этого, вам не нужна весна для запуска приложения rails. Это в первую очередь помощник при разработке и тестировании. Как только вы очистите вещи, я просто удалил их из вашего Gemfile, пока они вам действительно не понадобятся.

Другие вопросы по тегам