Ответ 1
Попробуйте использовать компилятор clang вместо значения по умолчанию:
rvm install 1.9.3 --with-gcc=clang
Я пытаюсь установить Ruby 1.9.3, но у меня проблемы. Я установил RVM, затем набрал:
rvm install 1.9.3
Вывод:
ERROR: Error running ' ./configure....
В журнале говорится:
configure: WARNING: unrecognized options: --with-libyaml-dir
checking build system type... x86_64-apple-darwin11.2.0
checking host system type... x86_64-apple-darwin11.2.0
checking target system type...x86_64-apple-darwin11.2.0
checking whether the C compiler works... no
configure: error: in `/Users/myuser/.rvm/src/ruby-1.9.3-p0':
configure: error: C compiler cannot create executables See `config.log' for more details
Я загрузил новый XCode из App Store и установил его.
Попробуйте использовать компилятор clang вместо значения по умолчанию:
rvm install 1.9.3 --with-gcc=clang
RVM нуждается в gcc-4.2 для установки ruby 1.9.3. К сожалению, Lion больше не включает gcc-4-2, только версию llvm:
lrwxr-xr-x 1 root wheel 12 15 feb 17:21 /usr/bin/gcc -> llvm-gcc-4.2
Если у вас есть Lion, но он обновлен с Snow Leopard, вполне вероятно, что у вас все еще есть gcc-4.2. Если у вас установлена новая установка Lion, вы должны скачать gcc-4.2. Я рекомендовал загрузить этот пакет.
https://github.com/kennethreitz/osx-gcc-installer
Убедитесь, что у вас установлен gcc-4.2:
-rwxr-xr-x 1 root wheel 113024 16 may 2011 /usr/bin/gcc-4.2
lrwxr-xr-x 1 root wheel 12 15 feb 17:21 /usr/bin/gcc -> llvm-gcc-4.2
Теперь вы можете установить ruby 1.9.3, как обычно:
rvm install 1.9.3
rvm use 1.9.3 --default
Если вы хотите просто установить и обновить последнюю версию Ruby (в отличие от переключения между различными версиями ruby), вы можете установить ruby через homebrew:
brew install ruby
Попробуйте сначала:
rvm get latest
Вот что я работаю:
rvm:
version: "rvm 1.9.2 by Wayne E. Seguin ([email protected]) [https://rvm.beginrescueend.com/]"
ruby:
interpreter: "ruby"
version: "1.9.3p0"
date: "2011-10-30"
platform: "x86_64-darwin11.2.0"
patchlevel: "2011-10-30 revision 33570"
full_version: "ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]"
Собственно, ruby-1.9.3-p125
теперь работает с gcc-llvm
. Но, текущие стабильные/последние релизы rvm
пока еще не установлены. Но это было просто rvm
быть осторожным, и теперь есть исправление к обходному пути в главной ветки rvm
.
Просто обновите rvm
до главной ветки и установите/обновите ruby
:
GT-MBP:~ gthiruva$ rvm upgrade ruby-1.9.3-p0 1.9.3
Are you sure you wish to upgrade from ruby-1.9.3-p0 to ruby-1.9.3-p125? (Y/n): Y
Installing new ruby ruby-1.9.3-p125
Fetching yaml-0.1.4.tar.gz to /Users/gthiruva/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /Users/gthiruva/.rvm/src
Configuring yaml in /Users/gthiruva/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/gthiruva/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/gthiruva/.rvm/usr
The autodetected CC(/usr/bin/gcc-4.2) is LLVM based, it is not yet fully supported by
ruby and gems, please read `rvm requirements`, and set CC=/path/to/gcc .
Unable to install ruby ruby-1.9.3-p125. Please install it manually to continue.
GT-MBP:~ gthiruva$ rvm get head
Original installed RVM version:
rvm 1.10.2 by Wayne E. Seguin <[email protected]>, Michal Papis
<[email protected]>`enter code here` [https://rvm.beginrescueend.com/]
...
RVM reloaded!
GT-MBP:~ gthiruva$ rvm reload
RVM reloaded!
GT-MBP:~ gthiruva$ exec bash
rvm 1.10.2 by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]>
[https://rvm.beginrescueend.com/]
GT-MBP:~ gthiruva$ rvm upgrade ruby-1.9.3-p0 1.9.3
Are you sure you wish to upgrade from ruby-1.9.3-p0 to ruby-1.9.3-p125? (Y/n): Y
Installing new ruby ruby-1.9.3-p125
...
Successfully migrated ruby-1.9.3-p0 to ruby-1.9.3-p125
Upgrade complete!
Работает с OS X Lion 10.7.3 и Xcode 4.3. Средства командной строки установлены.
Введите следующие команды
rvm - функция
~ $: vi ~/.bash_profile добавить эту строку в bash_profile "source ~/.rvm/scripts/rvm"
~ $: rvm install 1.9.3
Clang не рубил рубины для меня, а rvm install rubies не удалось, независимо от того, что с одним пользователем rvm. Sudo в сочетании с некоторым разрешением и изменениями PATH для моего пользователя сделали это. Вот что я сделал:
sudo bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )</pre>
sudo rvm pkg install readline
sudo rvm install 1.9.3
Установка rvm от пользователя root делает оболочку script в /usr/local/rvm/scripts/rvm Вытащил код из этого исполняемого файла и поместил его в мой .bash_profile, чтобы .bash_profile был сохранен как:
[ -s "/usr/local/rvm/scripts/rvm" ]] ;
true ${rvm_path:="/usr/local/rvm"}
source "/usr/local/rvm/scripts/rvm"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
Группа пользователей RVM была создана во время установки root пользователя rvm. Последнее, что я сделал, это перейти на панель настроек в OSX 10.7 и добавить пользователя в новую группу rvm. Наконец, я перезагрузил свой терминал и смог установить 1.9.3 через одного пользователя rvm.
Используя rvm, ruby 1.9.3 и пытаясь использовать gcc, я не смог получить Ruby для строгой очистки с помощью yaml. Хотя существует множество хаков, чтобы заставить компиляцию yaml работать, ни один из них, похоже, не работал с rvm. У меня были проблемы с поломкой поздно ночью, и я не сохранил свои ошибки, поэтому я работаю из памяти здесь. Я был бы признателен, если бы кто-то другой с чистой средой мог проверить эти шаги.
Использование решения --with-gcc=clang
произвело слегка печально известную ошибку в анализе yaml:
It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
Так как мне нужен yaml для того, что я собираюсь делать, а libyaml скомпилирован отлично, когда его не запускает rvm, и я даже установил его в /usr/lib после его создания вручную, я не могу понять почему rvm не смог найти и использовать эту версию libyaml, даже с опцией --shared-libs
.
Использование CC=/usr/bin/gcc rvm install 1.9.3
ошибок. В .rvm/log/ruby-1.9.3-p385/configure.log я обнаружил следующее:
configure: error: C compiler cannot create executables
See `config.log' for more details
Эта ошибка также присутствовала в .rvm/log/libyaml-0.14/configure.log.
Решение для меня состояло в том, чтобы запустить команду rvm с помощью sudo. Выполнение компиляции в виде корня, похоже, приводит к отказу Apple GCC от неодобрения пользователей, делающих что-либо столь же грязным, как компиляция программного обеспечения.
Итак, sudo CC=/usr/bin/gcc rvm install 1.9.3 --disable-binary
дал мне чистую компиляцию ruby + yaml в папке rvm. Затем мне нужно было sudo chown -R username ~/.rvm && sudo chgrp -R staff ~/.rvm
, чтобы вернуть данные в мой пользователь и работать с моими разрешениями.
Я не рекомендую компилировать вещи как root, так как я вижу это как угрозу безопасности (особенно с уязвимостями, обнаруженными в ruby stack и rubygems.org в последнее время), но это привело к чистой установка рубина под rvm и может помочь кому-то с большим талантом или временем выяснить основную причину проблемы с Apple gcc.
С помощью новых инструментов командной строки Feb 2012 для Xcode, используя RVM 1.10.3 (и JweleryBox для Mac), Ruby 1.9.3-p125 компилируется отлично, без использования "clang" и с общей связью и 64-битной архитектурой. Более того, команда "gem install rails" работает безупречно без предупреждения о поддержке libyaml.