Почему я не могу установить Rails на Lion с помощью RVM?

У меня возникают проблемы с установкой Rails на OS X Lion с использованием RVM.

До сих пор я сделал следующее:

  • Установленная версия Mac OS X Lion версии 10.7 (сборка 11A459e).
  • Установленный XCode 4.1 Developer Preview 5.
  • Установленный RVM.
  • Установлена ​​версия Ruby версии 1.8.7 через RVM с помощью команды rvm install 1.8.7. Примечание. Мне нужно использовать 1.8.7, а не 1.9.2.
  • Переключился на версию 1.8.7 Ruby с помощью команды rvm 1.8.7.
  • Создал новый gemset, используя команду rvm gemset create rails3.
  • Переключился на новый gemset с помощью команды rvm use [email protected].
  • Чтобы установить Rails, я выполнил команду gem install rails, но получил следующую ошибку:

    /Users/m/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:60: [BUG] Ошибка сегментации

То же самое происходит при попытке запуска любой команды gem, поэтому я не думаю, что это действительно проблема с Rails.

Судя по приведенным ниже ссылкам, я, похоже, не единственный человек, имеющий эту проблему:

http://twitter.com/#!/pingles/status/66261101351927809 и https://github.com/carlhuda/bundler/issues/1058

Ответ 1

Исправлено!

Ответ был фактически на одной из ссылок, которые я опубликовал выше. Перед установкой версии ruby ​​(rvm install 1.8.7) мне нужно было запустить "export CC=/usr/bin/gcc-4.2". С этим на месте все прошло гладко.

Если вы не хотите, чтобы CC постоянно экспортировался, вы можете сделать CC=/usr/bin/gcc-4.2 rvm install 1.8.7

Если вы уже установили ruby ​​1.8.7. Просто сделайте CC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7

Ответ 2

Если вы установили Xcode 4.2, на самом деле он не устанавливает больше не LLVM gcc, поэтому вам нужно добавить его. По какой-то причине понижение до 4.1 после того, как вы установили 4.2, работает некорректно (по крайней мере, это не для меня, а у других были аналогичные проблемы).

После довольно многого избиения, это то, что окончательно сработало для меня:

  • Установить Xcode 4.2 из магазина приложений
  • Установите darwin gcc с помощью OSX gcc installer
  • Установите REE, убедившись, что вы удалили остатки предыдущих попыток:

Закройте все открытые окна терминала, откройте новый и

rvm remove ree
export CC=/usr/bin/gcc-4.2
rvm install ree

Это работало для меня с rvm 1.8.6, OS X 10.7.2 и gcc-4.2 версии 4.2.1 (Apple build 5666).

Если вы уже установили Xcode 4.1, сопротивляйтесь желанию обновиться до 4.2, и вы должны быть в порядке.

Ответ 3

Если это еще не работает, добавьте -force. Таким образом, это становится:

CC=/usr/bin/gcc-4.2 rvm install ruby-1.8.7 --force

Ответ 4

Убедитесь, что вы удалили 1.8.7, если вы уже установили его перед использованием "export CC=/usr/bin/gcc-4.2", выполнив "rvm remove 1.8.7"

Ответ 5

У меня была такая же проблема в моей системе. Я установил инструменты Xcode из Apple, который поставляется с компилятором LLVM и без LLVM.

Ruby 1.8.7 не будет работать с компилятором LLVM даже с CC=clang, поэтому установка LLVM free gcc решает проблему.

Здесь перечислены несколько параметров:

https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers

Короче говоря, установите GCC v4.2 с Homebrew:

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb

а затем установите ruby ​​1.8.7:

CC=gcc-4.2 rvm install 1.8.7

Ответ 6

Вместо "export CC=/usr/bin/gcc-4.2" do "export CC=gcc" (должен быть установлен xCode 4.2.x).

Ответ 7

Проверьте, какая версия gcc у вас такая:

ls -Al `which gcc-4.2`

Я выполнил следующие инструкции: http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion

brew update
brew tap homebrew/dupes
brew install apple-gcc42

Затем переустановите:

Еще раз проверьте, каков ваш путь к gcc (использовать для CC =):

ls -Al `which gcc-4.2`

(необязательно) Вы можете установить это в своем .bashrc, например:

export CC=/usr/bin/gcc-4.2

(необязательно) удалите любую старую версию ruby ​​

rvm remove 1.8.7

Тогда:

CC=/usr/local/bin/gcc-4.2 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

или если вы установили CC в свой профиль

rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

Обратите внимание на флаги установки rvm. У меня возникли проблемы с проверкой контрольной суммы на ftp-сервере и некоторыми проблемами с tck, а что нет. Вы можете опустить эти флаги.

Также: вам может потребоваться удалить старую версию вашего gemset:

rvm gemset delete <gemset>

Тогда

gem install bundler
bundle install

Надеюсь, что это поможет.

Ответ 8

Использование версии macport и ruby-1.9.x. Я успешно установил рельсы с рубиновым камнем.

Ответ 9

У меня такая же проблема только для arch x86_64, когда я комментирую строку в ~/.rvmrc

rvm_archflags="-arch x86_64"

Откройте новый терминал и попробуйте снова установить ruby-1.8.7

rvm install 1.8.7

Это было успешно.

Ответ 10

Если вы используете RVM в рабочем процессе разработки, я добавил исправление в файле .rvmrc для OS X Lion.

https://gist.github.com/1112962

(обновленное имя файла)

Ответ 11

Это не связано с RVM, но если вы ищете локальную среду разработки для Lion, вы можете попробовать RubyStack Это бесплатный инсталлятор с открытым исходным кодом "все в одном" для Apache, MySQL, Ruby, Rails и т.д. Он не требует компиляции, и он является автономным, поэтому, если вам это не нравится, вы можете просто удалить каталог установки, и все готово. Отказ от ответственности: я один из разработчиков RubyStack:)

Ответ 12

CC=/usr/bin/gcc-4.2 rvm install 1.8.7 не работал у меня, я использовал CC=/usr/bin/gcc rvm install 1.8.7, и он сделал (проверяя с помощью "which gcc" )

Ответ 13

Даже со всеми другими предложениями на этой странице я все еще получал segfaults и расстраивался, поэтому я сказал: "Вверните его!" и используйте предоставленный системой Ruby 1.8.7:

rvm use system

Вам нужно использовать sudo для установки драгоценных камней, но тем не менее уменьшите головную боль.

Ответ 14

Моим решением было переопределить символическую ссылку /usr/bin/gcc в терминале. Вот как я это сделал:

https://plus.google.com/101970693023462019144/posts/eYVLvMCqTmc

Это не только фиксировало мою установку RVM, но также обеспечило работу с камнями с родными расширениями (например, rmagick).