Почему я не могу установить Rails на Lion с помощью RVM? - PullRequest
83 голосов
/ 30 мая 2011

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

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

  1. Установленная версия Mac OS X Lion10.7 (Build 11A459e).
  2. Установленный предварительный просмотр XCode 4.1 для разработчиков 5.
  3. Установленный RVM.
  4. Установленная версия Ruby 1.8.7 через RVM с помощью команды rvm install 1.8.7,Примечание: мне нужно использовать 1.8.7, а не 1.9.2.
  5. Переключился на версию Ruby 1.8.7 с помощью команды rvm 1.8.7.
  6. Создал новый набор гемов с помощьюкоманда rvm gemset create rails3.
  7. Переключение на новый набор гемов с помощью команды rvm use 1.8.7@rails3.
  8. Чтобы установить Rails, я запустил команду gem install rails, но получил следующую ошибку:

    / Пользователи / 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

Ответы [ 14 ]

77 голосов
/ 30 мая 2011

Исправлено!

Ответ был фактически по одной из ссылок, которые я разместил выше.Перед установкой версии 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

24 голосов
/ 25 октября 2011

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

После небольшого избиения у меня наконец-то получилось:

  1. Установить Xcode 4.2 из App Store
  2. Установить darwin gcc с помощью Установщик OSX gcc
  3. Установите 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, и с вами все будет в порядке.

22 голосов
/ 23 июля 2011

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

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

7 голосов
/ 18 июня 2011

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

6 голосов
/ 03 марта 2012

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

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

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

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
4 голосов
/ 15 октября 2011

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

2 голосов
/ 04 января 2013

Проверьте, какая у вас версия 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, а что нет.Вы можете опустить эти флаги.

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

rvm gemset delete <gemset>

Затем

gem install bundler
bundle install

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

1 голос
/ 04 ноября 2011

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

rvm_archflags="-arch x86_64"

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

rvm install 1.8.7

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

1 голос
/ 20 октября 2011

Использование версий macport и ruby-1.9.x.Я успешно установил рельсы с помощью ruby ​​gem.

0 голосов
/ 20 февраля 2012

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

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

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

...