не может загрузить такой файл - zlib даже после использования rvm pkg install zlib


112

Я установил пакет zlib и ruby ​​1.9.3 с помощью rvm, но всякий раз, когда я пытаюсь установить драгоценные камни, он говорит cannot load such file -- zlib

Для установки я использовал следующие команды:

$ rvm install 1.9.3
$ rvm pkg установить zlib

$ rvm переустановите 1.9.3 --with-readline-dir = / home / username / .rvm / usr \
    --with-iconv-dir = / home / имя пользователя / .rvm / usr \
    --with-zlib-dir = / home / имя пользователя / .rvm / usr \
    --with-openssl-dir = / home / имя пользователя / .rvm / usr

$ rvm используйте 1.9.3

$ gem install heroku
ОШИБКА: команда загрузки: установить (LoadError)
    не могу загрузить такой файл - zlib
ОШИБКА: при выполнении gem ... (NameError)
    неинициализированная константа Gem :: Commands :: InstallCommand

Вся справка по этому вопросу говорит мне просто сделать rvm pkg install zlib, а затем переустановить ruby ​​с помощью --with-zlib-dir=/home/username/.rvm/usr, но это не сработало.

Ответы:


201

В итоге я установил zlib из apt-get, а затем переустановил ruby, чтобы не использовать каталог rvm для zlib.

Вот как это сделать:

$ sudo apt-get install zlib1g-dev
$ rvm reinstall 1.9.3

[Edit] Как упоминает комментатор @chrisfinne, в системах на базе CentOS / RedHat:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3

21
или sudo yum install zlib-devel
Крис Финн

4
Что ж, независимо от ОС, совет @chrisfinne по-прежнему полезен (по крайней мере, для меня)!

У меня отлично сработало. Хотя мне пришлось перекомпилировать еще раз, так как мне тоже не хватало libssl-dev (мне это было нужно, потому что rvm хотел получить исходники
Ruby

9

Оба других ответа были почти правильными ...

Сайт rvm для zlib предоставляет быстрое решение!

Вверху страницы находится «Быстрое исправление», следуйте инструкциям, оно:

  • исправить вашу установку,
  • предоставить вам инструкции, что делать, чтобы установить zlib из вашей системы
  • и покажем как переустановить рубин

1

У Ruby есть множество зависимостей пакетов, таких как зависимость от zlib-devel. Они неприятны, потому что нет ничего, что указывало бы на то, что вам нужна библиотека, пока не получите какое-то непонятное сообщение об ошибке при попытке сделать что-то рутинное.

Решение - использовать rvm . Используйте его, даже если вам нужна только одна версия ruby. Зачем? Потому что тогда ты можешь сделать

rvm requirements

Это проверит вашу конкретную ОС и выдаст набор команд, которые вы можете скопировать обратно в командную строку, чтобы установить эти недостающие пакеты.


1

Используйте autolib для установки зависимостей:

rvm autolibs enable
rvm reinstall 1.9.3

RVM автоматически установит недостающие зависимости и использует их для компиляции ruby.

Подробнее об autolibs => http://rvm.io/rvm/autolibs


1
rvm pkg установить openssl && rvm pkg установить zlib && rvm pkg установить libyaml &&
  rvm pkg установить iconv
rvm install 1.9.3-p0 --with-opt-dir = $ HOME / .rvm / usr \
  --with-libxml2-dir = / usr / local / Cellar / libxml2 / 2.7.8 \
  --with-readline-dir = / usr / local / Cellar / readline / 6.2.1

1

Решение, которое сработало для меня, описано в репозитории rvm github, issue # 3389 .

Бегать

rvm install 2.3.0 --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8

для версии Ruby 2.3.0 .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.