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

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

Команды, которые я использовал для установки:

$ rvm install 1.9.3
$ rvm pkg install zlib

$ rvm reinstall 1.9.3 --with-readline-dir=/home/username/.rvm/usr \
    --with-iconv-dir=/home/username/.rvm/usr \
    --with-zlib-dir=/home/username/.rvm/usr \
    --with-openssl-dir=/home/username/.rvm/usr

$ rvm use 1.9.3

$ gem install heroku
ERROR: Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR: While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand

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

Ответы [ 6 ]

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

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

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

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

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

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3
9 голосов
/ 16 марта 2012

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

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

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

  • исправьте вашу установку,
  • предоставит вам инструкции по установке zlib из вашей системы
  • и покажите, как переустановить ruby ​​
1 голос
/ 08 марта 2017

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

Запуск

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

для ruby ​​ 2.3.0 версия.

1 голос
/ 13 июня 2013

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

rvm autolibs enable
rvm reinstall 1.9.3

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

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

1 голос
/ 05 февраля 2013

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

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

rvm requirements

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

1 голос
/ 07 ноября 2012
rvm pkg install openssl && rvm pkg install zlib && rvm pkg install libyaml &&
  rvm pkg install 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
...