Почему я не могу установить 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).