Подтвердить что ты не робот

Ошибка обновления Ruby на Mac с Xcode 4.3.1

Я использую RVM для его установки, и это дает мне эту ошибку:

The provided compiler '/usr/bin/gcc' is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`.

Я на Lion 10.7.3, и у меня Xcode 4.3.1.

4b9b3361

Ответ 1

Короткий ответ: вы можете захватить ведущую ветвь RVM (нестабильной), чтобы построить ее с LLVM (а не gcc, я сначала ошибся). У него есть соответствующие исправления, чтобы сделать 1.9.3-p125 для запуска (по крайней мере, лучше) с Xcode 4.3.1 по умолчанию. Я предоставил патч. Если вы уже установили RVM, rvm get head установит мастер-ветку. С инструментами командной строки, установленными с Xcode 4.3.1, вы можете успешно установить Ruby 1.9.3-p125.

Фон

Это происходит из-за простой проблемы с конфигурацией Ruby 1.9.3-p125, она не позволяет работать с динамическими модулями ссылок. Это происходит, если вы используете Xcode 4.3.x(Ruby Issue # 6080).

Эта проблема исправлена ​​в изменении набора r34840.

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

Инструмент командной строки Xcode 4.3.x

Во-первых, с помощью Xcode 4.3.x вам необходимо установить инструмент командной строки ПОСЛЕ установки Xcode 4.3.x, следуя указаниям: 1) Запуск Xcode, 2) Откройте "Настройки" из пункта "Xcode" в строке меню, 3) Выберите вкладку "Загрузки" (значок). 4) Нажмите кнопку "Установить" для "Инструменты командной строки" (направления, заимствованные у моего друга сайта здесь)

Если Xcode 4.3.1 правильно установлен, то cc --version должен испускать:

% cc --version
Apple clang version 3.1 (tags/Apple/clang-318.0.54) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix

autoconf и automake

Вам нужно autoconf и automake, так как Xcode 4.3.x их не имеет. Установите их либо brew, либо MacPorts. С помощью MacPorts:

sudo port install autoconf automake

Рекомендуемый шаг установки с RVM

Затем для установки конкретной ветки RVM вы можете:

REPO=wayneeseguin
BRANCH=master # stable for the stable branch
curl -s https://raw.github.com/${REPO}/rvm/${BRANCH}/binscripts/rvm-installer > /tmp/rvm-installer.sh
bash /tmp/rvm-installer.sh --branch ${REPO}/${BRANCH}

Или если RVM уже установлен:

rvm get head   # master branch, for stable branch "rvm get stable"

После этого установите для параметра bestsl, iconv и readline команду rvm pkg для получения наилучшего результата. Я делаю это в последнее время. Часть этого может потребоваться включить в RVM..

rvm pkg install openssl
rvm pkg install readline # if you prefer GNU readline

Затем, наконец, установите Ruby.

rvm install 1.9.3-p125 --patch xcode-debugopt-fix-r34840.diff --with-readline-dir=$rvm_path/usr --with-openssl-dir=$rvm_path/usr --with-tcl-lib=/usr --with-tk-lib=/usr

rvm pkg help рекомендует другой параметр, помощь не работает. Так что используйте выше на данный момент. Вам нужны параметры tcl/tk, если у вас есть их через MacPorts (например, я)

Кстати, можно установить старый Xcode, а затем запустить rvm с export CC="gcc-4.2" rvm install 1.9.3-p125, но я лично считаю, что clang (LLVM) - это путь к будущему, если это возможно.

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

Дополнительное примечание к 2012/3/31

iconv не нужно устанавливать, также добавлены требования autoconf/automake для разъяснений.

Дополнительное примечание к 2012/4/13

Последняя стабильная версия не включает исправление, требующее, чтобы динамическая ссылка работала по умолчанию. вам нужно добавить --patch xcode-debugopt-fix-r34840.diff при создании 1.9.3-p125.

Ответ 2

В соответствии с RVM 1.10.2 вам нужно установить homebrew package apple-gcc42, и все будет "Just Work (TM) )":

brew tap homebrew/dupes ; brew install apple-gcc42 ; rvm install ruby-1.9.2

Ciao!

[Обновлено на основе комментариев ниже]

Ответ 4

Я думаю, люди сбиты с толку, что все пишут

rvm get head
rvm get stable

вместо этого вы должны ТОЛЬКО писать

rvm get head

в противном случае он не будет работать (поскольку у стойки еще нет соответствующих патчей).

Ответ 5

У меня также была проблема с ruby-1.9.3-p125, вот что я сделал, надеюсь, что это может помочь кому-то по очереди.

rvm install ruby-1.9.3-p194

и проверили, что новый рубин, установленный с помощью

rvm list

ruby-1.9.2-p318 [ x86_64 ]
ruby-1.9.3-p125 [ x86_64 ] I want to remove this one
ruby-1.9.3-p194 [ x86_64 ] I want to use this one

Затем я удалил старую версию ruby ​​

rvm удалить ruby-1.9.3-p125

и установите новый рубин ruby-1.9.3-p194 для использования и установки драгоценных камней

rvm использовать ruby-1.9.3-p194

установить пакет

Ответ 6

Я установил и протестировал следующие действия, подобные приведенным выше. Однако я просто удалил все и выполнил базовую установку для всех этих. Единственное исключение заключалось в том, что вместо того, чтобы использовать диалог настроек xcode для установки инструментов командной строки (которые не удались для меня). Apple опубликовала отдельную версию, которую я использовал в пункте 2.)

  • Загрузите и установите xCode 4.3.2
  • Загрузка и установка средств командной строки для Xcode в конце марта 2012 года.
  • Установить путь xcode $xcode-select -switch/Application/xcode.app/Content/Developer
  • Установите Homebrew, а затем установите git, autoconf, automake, libyaml, libksba, wget через Brew.
  • Установите RVM, убедитесь, что он настроен в вашей оболочке
  • rvm install ruby-1.9.3-p125

Есть статьи, рекомендующие это для ruby >= 1.9.3, и все, что я тестировал и в настоящее время использую. Я установил и использовал mysql2, sqlite и обычный подозреваемый (GEM). Они все скомпилировали и передали некоторые из моих основных тестов.

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