Проблемы при установке Ruby 1.9.2 с RVM Mac OS X

Прошу прощения за свое незнание - я новичок в этом - но я все перепробовал и не могу установить 1.9.2 с помощью RVM. Я считаю, что я правильно установил RVM, и когда я перехожу к установке 1.9.2, я получаю следующую ошибку в моем журнале make, когда ruby ​​пытается скомпилировать:

ld: in /usr/local/lib/libz.1.dylib, file was built for unsupported file format which is   
not the architecture being linked (x86_64) for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [../../../.ext/x86_64-darwin10.6.0/digest/md5.bundle] Error 1
make: *** [mkmain.sh] Error 1

Другая информация: я запускал OS X в 32-битной версии и получил аналогичную ошибку - замените (x86_64) на, как мне кажется, (i36). Сейчас я использую 64-битную версию.

*Обновлять*:

Я сделал все, что меня просил сделать TinMan, и все равно безрезультатно - просто хочу отметить, что я могу установить 1.8.7 нормально. При попытке установить 1.9.1 и 1.9.2 появляется следующее сообщение об ошибке:

`Installing Ruby from source to: /Users/tl/.rvm/rubies/ruby-1.9.2-p180, this may take a   while depending on your cpu(s)...

ruby-1.9.2-p180 - #fetching 
ruby-1.9.2-p180 - #downloading ruby-1.9.2-p180, this may take a while depending on your    connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 8609k  100 8609k    0     0   655k      0  0:00:13  0:00:13 --:--:--  939k
ruby-1.9.2-p180 - #extracting ruby-1.9.2-p180 to /Users/tl/.rvm/src/ruby-1.9.2-p180
ruby-1.9.2-p180 - #extracted to /Users/tl/.rvm/src/ruby-1.9.2-p180
ruby-1.9.2-p180 - #configuring 
ruby-1.9.2-p180 - #compiling 
ERROR: Error running 'make ', please read /Users/tl/.rvm/log/ruby-1.9.2-p180/make.log
ERROR: There has been an error while running make. Halting the installation.`

Кроме того, я обновил свои autoconf, automake, m4 и libtools.

Наконец, мой путь и .bash_profiles соответственно выглядят так:

ДОРОЖКА

`/usr/local/upgraded/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin`

.bash

`export PATH=$PATH:/opt/local/bin
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"`

* Обновление 2 *

Я обновил свои autoconf, automake, m4 и libtools, следуя инструкциям здесь: http://tom.meinlschmidt.org/2010/11/22/upgrade-autoconfautomake-in-osx/

Информация о RVM: `system:

 system:
   uname:       "Darwin Tam-Les-MacBook-Pro.local 10.6.0 Darwin Kernel Version 10.6.0:  Wed Nov 10 18:11:58 PST 2010; root:xnu-1504.9.26~3/RELEASE_X86_64 x86_64"
   bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)"
   zsh:         "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)"

 rvm:
   version:      "rvm 1.5.2 by Wayne E. Seguin ([email protected]) [http://rvm.beginrescueend.com/]"

 homes:
   gem:          "not set"
   ruby:         "not set"

 binaries:
   ruby:         "/usr/bin/ruby"
   irb:          "/usr/bin/irb"
   gem:          "/usr/bin/gem"
   rake:         "/usr/bin/rake"

 environment:
   PATH:          "/usr/local/upgraded/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/opt/local/bin:/Users/tl/.rvm/bin:/Users/tl/.rvm/bin"
   GEM_HOME:     ""
   GEM_PATH:     ""
   MY_RUBY_HOME: ""
   IRBRC:        ""
   RUBYOPT:      ""
   gemset:       ""`

Кроме того, ваш PATH не выглядит так, как будто RVM разрешено инициализировать себя. Когда RVM инициализирован, он сначала помещает свой путь к вашему ~ / .rvm.

Как ты это делаешь? Я действительно новичок в этом, и зашел так далеко благодаря чисто предположениям. Я знаю, что это неэффективно.

* Обновление 3 *

Привет всем - прошло много времени с тех пор, как я отказался от этого, но я собираюсь попробовать еще раз в эти выходные. Спасибо за все советы, и я дам вам знать, что оттуда происходит. Для такого новичка, как я, я сильно недооценил, насколько сложно просто что-то установить.


person tlxwiggum    schedule 24.03.2011    source источник
comment
Вы переустанавливали rvm после обновления Mac?   -  person Pan Thomakos    schedule 25.03.2011
comment
RVM не нужно переустанавливать после обновления, потому что это не скомпилированный код. Все ранее установленные Rubies и связанные гемы с машинным кодом необходимо переустановить. Однако его следует регулярно обновлять, потому что это быстро движущееся существо.   -  person the Tin Man    schedule 25.03.2011
comment
Я был очень занят и не мог вернуться к этому вопросу в последние несколько дней. Я еще раз взгляну на него в эти выходные и, надеюсь, закрою этот вопрос.   -  person tlxwiggum    schedule 30.03.2011
comment
Введите rvm info, затем скопируйте информацию, затем rvm -v, скопируйте и этот вывод и отправьте его на указанный адрес электронной почты. Вы можете спросить Уэйна, не хочет ли он попытаться найти ответ на этот вопрос.   -  person the Tin Man    schedule 30.06.2011


Ответы (8)


Я не знаю, продолжаете ли вы это делать, но мне это удалось:

sudo rm /usr/local/lib/libz.*

:)

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

person piotr    schedule 29.06.2011
comment
Добро пожаловать в StackOverflow. Это сайт вопросов и ответов, а не группа новостей или дискуссионный форум. Он работает, когда кто-то задает вопрос, а затем люди могут публиковать ответы на вопрос, вводя текст в области «Ваш ответ». Ваш пост не является ответом на заданный вопрос и не должен отображаться как таковой. Если вы еще этого не сделали, уделите несколько минут, чтобы прочитать FAQ и еще несколько вопросов, чтобы узнать, как сайт устроен для работы. . Спасибо. - person Ken White; 30.06.2011
comment
@Ken White: Вы хотите сказать, что это шутка, и что следование данному совету может нанести серьезный ущерб? - person Andrew Grimm; 06.07.2011
comment
FML, но это сработало ... Черт побери, Джим, я системный администратор, а не (в основном) разработчик! - person gWaldo; 08.11.2011
comment
Я определенно рекомендую сделать резервную копию этих файлов перед их удалением. Но это действительно решило проблему для меня. - person aNoble; 26.04.2012

При обновлении с 32-битной до 64-битной все двоичные файлы Ruby под управлением RVM необходимо перекомпилировать. Это означает Ruby и драгоценные камни с скомпилированным C.

Вот пара шагов, которые можно попробовать с головы до ног, проделав это некоторое время назад:

  1. Убедитесь, что ваш XCode актуален. НЕ доверяйте версии на DVD Snow Leopard, так как она повреждена. Загрузите И УСТАНОВИТЕ текущую копию с сайта Apple XCode.
  2. Обновите свой RVM, используя rvm get head. Текущая рев. RVM есть 1.5.1, обновившись вчера.
  3. Переустановите все свои Rubies, используя rvm uninstall с версией Ruby, а затем rvm install с тем же номером версии. Это должно довести версии Ruby до 64-битных.
  4. Восстановите драгоценные камни, используя gem pristine -all для каждого установленного Ruby. Вероятно, вы могли бы сделать их все автоматически, используя rvm ruby 'gem pristine --all'.

Редактировать:

[...] Мне удалось успешно установить 1.8.7, но все еще получаю ту же ошибку для 1.9.2. Что-то еще мне не хватает? Имеет ли значение .bash_profile в этой ситуации?

Попробуйте ввести rvm notes и следуйте инструкциям по работе с зависимостями для Mac OS. Возможно, вам не хватает чего-то, что вызывает проблему. Если это не помогает, отредактируйте ваш исходный вопрос с текстом сообщения об ошибке, чтобы мы могли его увидеть.

[...] когда он проходит фазу извлечения, он говорит: '#extracted to /Users/tl/.rvm/src/ruby-1.9.2-p180 (уже извлечено)'

Ах, был там. Сделайте rm ~/.rvm/src/ruby-1.9.2-p180/*, чтобы очистить этот каталог. RVM загружает архив для определенного Ruby в каталог ~/.rvm/archive, затем распаковывает его в ~/.rvm/src. Если что-то пойдет не так во время извлечения, возможно, будут только некоторые файлы, что приведет к сбою во время цикла настройки / создания.


Редактировать:

обновили мои autoconf, automake, m4 и libtools

КАК вы их устанавливали и обновляли? Ruby в Mac OS требует заголовков Apple и XCode.

Добавьте результат rvm info к исходному вопросу. В нем будет вся информация об окружении.

Кроме того, ваш PATH не выглядит так, как будто RVM разрешено инициализировать себя. После инициализации RVM сначала укажет свой путь к вашему ~/.rvm.


Редактировать:

Выходные данные rvm info показывают, что RVM не был инициализирован. Он установлен, но это не одно и то же.

  1. ВНИМАТЕЛЬНО прочтите документацию и убедитесь, что вы выполнили действия, описанные в разделе «После установки» на странице «Установка "на сайте RVM. Пройдите также через раздел «Устранение неполадок при установке», затем повторите попытку.
  2. Убедитесь, что вы установили текущую версию системы разработки Apple XCode.
person the Tin Man    schedule 24.03.2011
comment
Я еще не установил драгоценные камни - мне это сделать в первую очередь? Я предполагал, что сделал это после установки ruby. - person tlxwiggum; 25.03.2011
comment
Сначала вы должны установить хотя бы один Ruby. - person the Tin Man; 25.03.2011
comment
Спасибо за вашу помощь, Tin Man - мне удалось успешно установить 1.8.7, но я все еще получаю ту же ошибку для 1.9.2. Что-то еще мне не хватает? Имеет ли значение .bash_profile в этой ситуации? - person tlxwiggum; 25.03.2011
comment
Еще одна деталь - когда он проходит фазу извлечения, он говорит: '#extracted to /Users/tl/.rvm/src/ruby-1.9.2-p180 (уже извлечено)' - person tlxwiggum; 25.03.2011
comment
@tlxwiggum, см. мою правку в моем ответе re: ваши инструменты, путь и rvm info. - person the Tin Man; 25.03.2011
comment
оловянный человечек - спасибо за такое терпение. Я много учусь и получаю лучшее понимание, просто просматривая ваши рекомендации. Я обновил свой исходный вопрос тем, что вы просили. - person tlxwiggum; 25.03.2011

Я думаю, это вызвано предыдущей установкой MacPorts. удалив эти символы / whatelse, запустив

sudo rm /usr/local/lib/libz.* 

исправил это для меня

person AlexW    schedule 29.01.2012

Я отказался от попыток установить Ruby 1.9.3 с помощью RVM в OS X 10.8 и использовал для этого homebrew. Это сработало как шарм - устанавливает Ruby с помощью одной единственной команды:

$ brew установить рубин

person Vladimir Kroz    schedule 13.02.2013
comment
Любые указания о том, как заставить текущую установленную версию ruby ​​использовать только что установленную версию после установки homebrew? - person Norman H; 15.08.2013

Это должно сработать из коробки, если вы не сделали никаких сумасшедших вещей при установке OS X. Что я предлагаю:

  1. Попробуйте переустановить Инструменты разработчика с нуля.
  2. Создайте нового пользователя в OS X, войдите в систему и попробуйте установить там RVM обычным способом.

Поскольку ваша установка RVM предназначена только для вашего tl-пользователя, проба RVM с новым пользователем дает вам немного чистого старта. Если установка RVM + Ruby 1.9.2 не удалась и у нового пользователя, я предлагаю переустановить вашу машину, поскольку, вероятно, слишком много всего происходит.

person Martijn    schedule 29.06.2011

Некоторая программа установила версию zlib в ваш / usr / local, которую нельзя использовать для связывания Ruby с ней, потому что это (я полагаю) i386, а ваш Ruby-in-minting - x64.

Ваши варианты:

1) Временно переместите / usr / local в сторону, выполнив простое переименование

 $mv /usr/local /usr/local-disabled

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

2) Измените RVM, чтобы построить Ruby с архитектурой, которая соответствует этому zlib, который у вас есть. Сначала используйте file и проверьте, в какой арке находится ваш zlib.

$file /usr/local/lib/libz.1.dylib 
/usr/local/lib/libz.1.dylib: Mach-O dynamically linked shared library i386

Это скажет вам, для какой арки вам нужно настроить RVM.

Place the following in your ~/.rvmrc file:
rvm_archflags="-arch i386"

3) Установите новый zlib, который, скорее всего, будет компилироваться с правильной архитектурой по умолчанию - http://www.zlib.net/, а затем повторите попытку построения рубина с настройками по умолчанию.

4) Действительно, поскольку Петр предложил просто удалить некорректную копию zlib и посмотреть, какая программа будет искать ее с ошибкой :-P

person Julik    schedule 05.07.2011

Попробуйте, работает как шарм: https://rvm.io/packages/zlib/

rvm pkg install zlib
rvm reinstall 1.9.2 --with-zlib
person O.O    schedule 05.01.2012

RVM зависит от Homebrew под MacOSX, так что в любом случае вы вернетесь к делу, вызывая

brew install ruby
person Oleg Kokorin    schedule 27.04.2017