Проблема обновления Ruby на Mac с помощью Xcode 4.3.1 - PullRequest
19 голосов
/ 11 марта 2012

Я использую 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.

Ответы [ 6 ]

41 голосов
/ 11 марта 2012

Короткий ответ: вы можете получить основную ветку 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

Первый, с Xcode4.3.x, вам необходимо установить инструмент командной строки ПОСЛЕ установки Xcode 4.3.x, выполнив следующие действия: 1) Запуск Xcode, 2) Откройте «Preferences» из пункта «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"

После этого установить openssl, 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 рекомендует другой параметр, справка не работает.Так что используйте выше на данный момент.Вам нужны параметры 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.

11 голосов
/ 06 июля 2012

Начиная с RVM 1.10.2 все, что вам нужно, это установить пакет homebrew apple-gcc42, и все будет "Just Work (TM)":

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

Ciao!

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

4 голосов
/ 21 марта 2012

Вам просто нужно установить gcc-4.2 в /usr/bin.

Вот загрузка https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg.

А затем CC = / usr / bin / gcc-4.2 rvm установить 1.8.7 --force

3 голосов
/ 11 марта 2012

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

rvm get head
rvm get stable

вместо этого вы должны только написать

rvm get head

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

1 голос
/ 15 октября 2012

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

rvm install ruby-1.9.3-p194

и проверил, что новый ruby ​​установлен с

Список RVM

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 ​​ruby-1.9.3-p194 для использования и установки гемов

rvm use ruby-1.9.3-p194

комплектация

0 голосов
/ 26 марта 2012

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

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

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

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

...