Как исправить эту ошибку RVM на Macbook Pro i7, работающей 10.6 - PullRequest
2 голосов
/ 13 февраля 2011

Я получил ошибку, описанную на этой странице http://www.fakingfantastic.com/2010/11/26/fixing-the-you-have-to-install-development-tools-first-error-with-nokogiri/ и, следуя их инструкциям, получил следующую ошибку:

[2011-02-13 11:05:03]  ./configure --prefix=/Users/MYNAME/.rvm/rubies/ruby-1.9.2-p136 --enable-shared  
checking build system type... i386-apple-darwin10.6.0
checking host system type... i386-apple-darwin10.6.0
checking target system type... i386-apple-darwin10.6.0
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... configure: error: in `/Users/MYNAME/.rvm/src/ruby-1.9.2-p136':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

Я думал, что это: https://gist.github.com/767866 выглядело как aswer, но я не могу найти .rvmrc.

РЕДАКТИРОВАТЬ: я думаю, что проблема в i386. Моя установка 1.8.2 - x8x_64, кажется.

РЕДАКТИРОВАТЬ 2: после некоторой дополнительной работы я выплевываю эту ошибку

[2011-02-13 11:51:05]  ./configure --prefix=/Users/MYNAME/.rvm/rubies/ruby-1.9.2-p136 --enable-shared            --build=i386-apple-darwin10.6.0           --host=i386-apple-darwin10.6.0 
checking build system type... i386-apple-darwin10.6.0
checking host system type... i386-apple-darwin10.6.0
checking target system type... i386-apple-darwin10.6.0
checking for i386-apple-darwin10.6.0-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for i386-apple-darwin10.6.0-g++... no
checking for i386-apple-darwin10.6.0-c++... no
checking for i386-apple-darwin10.6.0-gpp... no
checking for i386-apple-darwin10.6.0-aCC... no
checking for i386-apple-darwin10.6.0-CC... no
checking for i386-apple-darwin10.6.0-cxx... no
checking for i386-apple-darwin10.6.0-cc++... no
checking for i386-apple-darwin10.6.0-cl.exe... no
checking for i386-apple-darwin10.6.0-FCC... no
checking for i386-apple-darwin10.6.0-KCC... no
checking for i386-apple-darwin10.6.0-RCC... no
checking for i386-apple-darwin10.6.0-xlC_r... no
checking for i386-apple-darwin10.6.0-xlC... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/Users/MYNAME/.rvm/src/ruby-1.9.2-p136':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
[2011-02-13 11:58:36]  ./configure --prefix=/Users/MYNAME/.rvm/rubies/ruby-1.9.2-p136 --enable-shared  
checking build system type... i386-apple-darwin10.6.0
checking host system type... i386-apple-darwin10.6.0
checking target system type... i386-apple-darwin10.6.0
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... configure: error: in `/Users/MYNAME/.rvm/src/ruby-1.9.2-p136':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

Ответы [ 2 ]

1 голос
/ 13 февраля 2011

@ eggie5 сказал:

Я бы добавил ваш os x cd и снова установил xcode.

НЕ устанавливайте XCode с DVD. Известно, что версия диска 10.6 (Snow Leopard) содержит ошибки. Установите последнюю версию с сайта Apple XCode . Вы должны быть зарегистрированы, чтобы скачать, но это бесплатная регистрация.

Я подозреваю, что вы обновились до 10.6, а не устанавливались по умолчанию при покупке вашей машины. 10.6 является 64-битным, как и связанная с ним версия XCode, поэтому все должно быть 64-битным. Так как это не пахнет как обычный Leopard или ОС до 10.6. Это означает, что все Ruby, размещенные на RVM, являются подозрительными и нуждаются в удалении, а также любые гемы, скомпилированные до обновления и обновления XCode.

После установки дистрибутива XCode вам необходимо удалить, а затем установить Ruby, размещенный на RVM. Сначала обновите RVM до последней версии: введите rvm -v и запишите номер редакции. Введите rvm get head, чтобы загрузить последнюю версию. Когда загрузка закончится, вы увидите новый номер ревизии. RVM быстро меняется, поэтому вы хотите регулярно обновляться до последней версии.

Это из RVM FAQ , который является очень хорошей информацией для работы с RVM, особенно комментарии об использовании sudo с гемами:

Мой ruby ​​компилируется как 32-битный, но я нахожусь на Mac OS X Snow Leopard, в которой много рекламы, что он 64-битный !!!

RVM компилируется в архитектуру вашего текущего запущенного ядра. Это означает, что если ваше ядро ​​работает как 32-битное ядро ​​(uname -m), оно скомпилирует 32-битное. Вы можете переопределить это поведение, поместив следующее в ~ / .rvmrc перед установкой интерпретатора ruby:

rvm_archflags = "- arch x86_64"

Я думаю, что было бы неплохо установить это, а не полагаться на значения по умолчанию, поскольку с этого момента вы, вероятно, будете использовать 64-битную версию.

Введите rvm reload или закройте окно терминала и снова откройте сеанс.

Введите rvm notes и прочитайте его. Это дает вам список необходимых условий для гладкой установки Ruby в зависимости от вашей операционной системы. Неспособность установить эти средства означает, что различные функции могут не работать в Ruby, что приведет к случайным, странным сбоям.

Введите rvm list и запишите установленные вами версии Ruby. Представьте, что ваш первый - ruby-1.8.7-p330. Тип:

rvm uninstall ruby-1.8.7-p330
rvm install ruby-1.8.7-p330

Повторите для каждого установленного вами. Когда вы закончите, напечатайте rvm info и посмотрите, проходит ли то, что написано, проверки работоспособности.

Если все выглядит хорошо, пришло время восстановить родные драйверы для ваших драгоценных камней.

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

  • Возможно, вы захотите обновить свои драгоценные камни, если вы не запускали gem update некоторое время. rvm ruby 'gem update' будет проходить через установленные Rubies, обновляя их.
  • Люди накапливают старые драгоценные камни, но часто не очищают их, поэтому, чтобы ускорить восстановление ваших драгоценных камней, вы, вероятно, должны очистить свои старые. Вам придется обратить внимание на то, что он говорит вам, когда он обрабатывает, потому что он даст вам знать о зависимостях, которые не будут выполнены. rvm ruby 'gem clean' будет проходить через установленные Rubies и вычищать старые вещи.

Чтобы восстановить родные драйверы, введите rvm ruby 'gem pristine --all', который переустановит все ваши драгоценные камни.

После этого запустите rvm info и убедитесь, что он снова возвращает вменяемую информацию.

Кроме того, в качестве аварийного аварийного люка совершенно безопасно уничтожить вашу директорию ~/.rvm, набрав rm -f ~/.rvm или используя rvm implode, затем начав сначала. Переустановка Ruby - это самая длинная часть процесса, и RVM делает его довольно безболезненным, когда есть поддерживающие библиотеки.

0 голосов
/ 13 февраля 2011

Я бы вставил ваш os x cd и снова установил xcode.

...