Проблема с Ruby 1.9.2 с RVM Mac OS X

Я извиняюсь за свое невежество - я очень к этому знаком, но я все пробовал и не могу установить 1.9.2 с помощью RVM. Я считаю, что я правильно установил RVM, и когда я перехожу к установке 1.9.2, я получаю следующую ошибку в моем журнале регистрации, когда 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 бит.

* Update *:

Я сделал все, что 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 выглядят так:

PATH

`/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:
   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 *

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

Ответы

Ответ 1

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

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

:)

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

Ответ 2

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

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

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

Edit:

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

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

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

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


Edit:

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

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

Пожалуйста, добавьте вывод rvm info к исходному вопросу. Он будет иметь все виды информации об окружающей среде.

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


Изменить:

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

  • ВНИМАТЕЛЬНО прочитайте документацию и отметьте, что вы выполнили шаги в разделе "После установки" в разделе "" Установка " сайт RVM. Перейдите также в раздел" Устранение неполадок, связанных с установкой", затем сделайте это снова.
  • Подтвердите, что вы установили текущую версию системы разработки Apple XCode.

Ответ 3

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

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

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

Ответ 4

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

$brew установить ruby ​​

Ответ 5

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

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

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

Ответ 6

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

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

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

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

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

2) Bend 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

Ответ 7

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

rvm pkg install zlib
rvm reinstall 1.9.2 --with-zlib

Ответ 8

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

brew install ruby