Ruby не работает на OSX Lion с rbenv - PullRequest
7 голосов
/ 02 марта 2012

Я пытался установить Ruby на мою машину Lion (OSX 10.7.3).

Я установил rbenv и ruby-build и пытаюсь получить 1.9.2-p290 на своей машине.Вот результат сбоя установки:

$ rbenv install 1.9.2-p290
Downloading http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz...
Installing yaml-0.1.4...
Installed yaml-0.1.4 to /Users/CSC/.rbenv/versions/1.9.2-p290
Downloading http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz...
Installing ruby-1.9.2-p290...

BUILD FAILED

Inspect or clean up the working tree at /var/folders/vm/gcqcld015jx025m7qgtxvw0m0000gn/T/ruby-build.20120301140751.6239
Results logged to /var/folders/vm/gcqcld015jx025m7qgtxvw0m0000gn/T/ruby-build.20120301140751.6239.log

Last 10 log lines:
/usr/bin/gcc-4.2 -I. -I../../../.ext/include/x86_64-darwin11.3.0 -I../../.././include -I../../.././ext/racc/cparse -DRUBY_EXTCONF_H=\"extconf.h\" -I'/Users/SamCouch/.rbenv/versions/1.9.2-p290/include'  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -pipe  -o cparse.o -c cparse.c
/usr/bin/gcc-4.2 -dynamic -bundle -o ../../../.ext/x86_64-darwin11.3.0/racc/cparse.bundle cparse.o -L. -L../../.. -L. -L'/Users/SamCouch/.rbenv/versions/1.9.2-p290/lib'  -L/usr/local/lib -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace  -lpthread -ldl -lobjc 
compiling readline
/usr/bin/gcc-4.2 -I. -I../../.ext/include/x86_64-darwin11.3.0 -I../.././include -I../.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\" -I'/Users/SamCouch/.rbenv/versions/1.9.2-p290/include'  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -pipe  -o readline.o -c readline.c
readline.c: In function ‘username_completion_proc_call’:
readline.c:1386: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:1386: error: (Each undeclared identifier is reported only once
readline.c:1386: error: for each function it appears in.)
make[1]: *** [readline.o] Error 1
make: *** [mkmain.sh] Error 1

Я пытался решить проблему, но пока не нашел решения:

$ which gcc
/usr/bin/gcc
$ gcc
i686-apple-darwin11-llvm-gcc-4.2: no input files
$ ruby-build
ruby-build 20120216
usage: ruby-build [-v|--verbose] definition prefix
       ruby-build --definitions

Любая помощь будетБуду очень признателен!

В качестве примечания я попробовал другие подобные предложения, опубликованные здесь, и ни одно из них не сработало для меня.

Ответы [ 4 ]

16 голосов
/ 08 марта 2012

За сборку ruby ​​ выпуск # 130 текущий обходной путь:

env CC=/usr/bin/gcc rbenv install 1.9.3-p125

Я только что успешно проверил это в системе с:

  • OS X 10.7.3
  • Xcode 4.3.1
  • Установленные инструменты командной строки для Xcode (через Xcode> Настройки> Загрузки)
  • ruby-build @ fbfa944
  • rbenv @ 975b45d

Кроме того, ожидающий запрос на извлечение # 137 направлен на то, чтобы раз и навсегда исправить это.FWIW, многие люди стряхивают проблемы цепочки сборки с Xcode 4.3.x с момента его появления.Ожидайте некоторую нестабильность в любой системе, если вы обновитесь до новой цепочки инструментов, пока коллективная пыль не осядет.

5 голосов
/ 17 февраля 2013

Похоже, есть два или три вопроса переполнения стека, связанных с ошибками при использовании rbenv для установки ruby ​​1.9.x в Mac OS X через homebrew / rbenv, и я попробовал решения для многих из них без удачи. Установка компилятора и установка компилятора apple gcc42 с помощью homebrew не помогли (brew install apple-gcc42 и CC=/usr/bin/gcc - не повезло), поэтому я не уверен, что они необходимы. Я использую менеджер rbenv, и это то, что у меня сработало при попытке установить 1.9.3-p385

Проблема с readline, как показывает журнал:

readline.c: In function ‘username_completion_proc_call’:
readline.c:1499: error: ‘username_completion_function’ undeclared (first use in this function)
readline.c:1499: error: (Each undeclared identifier is reported only once
readline.c:1499: error: for each function it appears in.)

Итак, после поиска этой ошибки я нашел решение:

Решение:

brew install readline
CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)" rbenv install 1.9.3-p385

Вы можете указать, что часть команды rbenv install 1.9.3-p385 соответствует любой последней версии или версии, которую вы пытаетесь установить. Нашел заметку на этом блоге .

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

Это не совсем то, что вы просили, но " Не удается установить Ruby под Lion с RVM - GCC выдает " ответы на вопрос, как заставить Ruby работать на Lion с RVM.Ошибки очень похожи, поэтому вы можете либо:

использовать их для получения некоторых рекомендаций по устранению неполадок rbenv, либо просто использовать RVM, как описано в главном ответе, для установки Ruby таким способом.Мне кажется, этот способ проще.

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

Это может быть ответ на уровне того, что вам нужно, а не на уровне того, что вы прямо спрашиваете, но: рассматривали ли вы просто использование macports (см. Macports.org) или brew как способ установки ruby ​​1.9 ? Это работает очень хорошо и с гораздо меньшими усилиями.

...