не удается загрузить такой файл-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 ответов


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

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

на сайт 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 версия.