Как я могу установить Ruby 1.9.3 в Mac OS X Lion? - PullRequest
56 голосов
/ 15 ноября 2011

Я пытаюсь установить 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 из приложенияСохраните и установите его.

Ответы [ 11 ]

118 голосов
/ 23 ноября 2011

Попробуйте использовать компилятор clang вместо значения по умолчанию:

rvm install 1.9.3 --with-gcc=clang
15 голосов
/ 16 февраля 2012

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
13 голосов
/ 16 февраля 2012

Если вы хотите просто установить и обновлять последнюю версию Ruby (в отличие от переключения между различными версиями ruby), вы можете установить ruby ​​через homebrew :

brew install ruby
6 голосов
/ 09 января 2013
  1. Открыть Xcode
  2. Открыть настройки XCode
  3. Открыть Загрузки вкладка
  4. Проверка Инструменты командной строки

Xcode screenshot

6 голосов
/ 23 февраля 2012

На самом деле, 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 <wayneeseguin@gmail.com>, Michal Papis
<mpapis@gmail.com>`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 <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> 
[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!
6 голосов
/ 15 ноября 2011

Попробуйте сначала:

rvm get latest

Вот что у меня работает:

  rvm:
    version:      "rvm 1.9.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [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]"
3 голосов
/ 28 февраля 2012
  1. Удалите / удалите все следы установленных вручную старых версий ruby ​​и дополнений (sqlite3, libxml2-x.x.x, libxslt-x.x.x) из вашего / usr / local / или везде, где вы их установили.
  2. Загрузите и установите JewlryBox http://unfiniti.com/software/mac/jewelrybox, который представляет собой графический интерфейс RVM для управления рубинами и наборами драгоценных камней.
  3. В JewlryBox, нажмите «Добавить Ruby» и выберите версию ruby, которую вы хотите установить (я выбрал 64-битную, Enabled Shared и не отмечал / не отмечал опцию «Use clang»).

Работал с установленными средствами командной строки OS X Lion 10.7.3 и Xcode 4.3.

2 голосов
/ 17 апреля 2013

Введите следующие команды

  • ~ $: source ~ / .rvm / scripts / rvm
  • ~ $: type rvm |head -n 1

    rvm является функцией

  • ~ $: vi ~ / .bash_profile добавить эту строку в bash_profile "source ~ / .rvm / scripts / rvm"

  • ~ $: установка rvm 1.9.3

  • ~ $: использование rvm 1.9.3
0 голосов
/ 20 февраля 2013

Используя 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. Запуск компиляции с правами root, по-видимому, устраняет неодобрение Apple GCC toolchain о том, что пользователи делают что-то столь же грязное, как компиляция программного обеспечения.

Итак, 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 ​​и rubygems.org), но это привело к чистой установке ruby под rvm и может помочь кому-то с большим талантом или временем выяснить причину проблемы с gcc от Apple.

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

Clang не порезал мне никаких рубинов, и установка рубинов rvm не удалась, несмотря на однопользовательский rvm. Судо в сочетании с некоторыми разрешениями и изменениями $ PATH для моего пользователя сделали это возможным. Вот что я сделал:

<code>sudo bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
sudo rvm pkg установить readline sudo rvm установить 1.9.3

Установка rvm от пользователя root делает скрипт оболочки в / 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.

...