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


я установил пакет zlib и ruby 1.9.3 с помощью rvm, но всякий раз, когда я пытаюсь установить драгоценные камни он говорит 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, и затем переустановите ruby с помощью --with-zlib-dir=/home/username/.rvm/usr, но это не получилось.

6 110

6 ответов:

Я закончил установку 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

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

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

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

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

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

решение заключается в использовании РВМ. Использовать его, даже если вам нужна только одна версия Ruby. Зачем? Потому что тогда вы можете сделать

rvm requirements

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

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

rvm autolibs enable
rvm reinstall 1.9.3

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

более подробную информацию о autolibs => http://rvm.io/rvm/autolibs

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

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

Run

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

Рубина 2.3.0 версия.