не може завантажити такий файл - zlib навіть після використання rvm pkg встановити 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 - з-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 використання 1.9.3

$ gem встановіть героїку
ПОМИЛКА: Команда завантаження: встановити (LoadError)
    не може завантажити такий файл - zlib
ПОМИЛКА: Під час виконання gem ... (NameError)
    неініціалізована константа Gem :: Команди :: InstallCommand

Вся допомога з цього приводу говорить мені просто зробити rvm pkg install zlib, а потім перевстановити рубін --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

[Редагувати] Як згадує коментатор @chrisfinne, в системах на базі CentOS / RedHat:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3

21
або sudo yum install zlib-devel
chris finne

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

Для мене прекрасно працювали. Хоча мені довелося ще раз перекомпілювати, оскільки мені теж не вистачало libssl-dev (мені це знадобилось, оскільки rvm хотів отримати джерела рубіну через HTTPS) :-)
tr9sh

9

Обидва інші відповіді були майже правильними ...

Сайт rvm для zlib забезпечує швидке виправлення!

Зверху на сторінці розміщено "Швидке виправлення", дотримуйтесь його інструкцій, це:

  • виправити встановлення,
  • надамо інструкції, що робити, щоб встановити zlib зі своєї системи
  • і покажіть, як перевстановити рубін

1

У Ruby існує купа залежностей від пакета, як у zlib-devel. Вони неприємні, тому що немає нічого, що вказує на те, що вам потрібна бібліотека, поки не отримаєте якесь незрозуміле повідомлення про помилку, намагаючись зробити щось звичайне.

Рішення - використовувати rvm . Використовуйте його, навіть якщо вам потрібна лише одна версія рубіну. Чому? Тому що тоді ти можеш зробити

rvm requirements

Це дозволить перевірити вашу конкретну ОС та створити набір команд, які ви можете скопіювати назад у командний рядок, щоб встановити ці відсутні пакети.


1

Використовуйте автоліб для встановлення залежностей:

rvm autolibs enable
rvm reinstall 1.9.3

RVM автоматично встановить пропущені залежності та використовуватиме їх для складання рубіну.

Детальніше про autolibs => http://rvm.io/rvm/autolibs


1
rvm pkg встановити openssl && rvm pkg встановити zlib && rvm pkg встановити libyaml &&
  rvm pkg встановити iconv
rvm встановити 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 / льох / readline / 6.2.1

1

Рішення, яке працювало для мене, описано в rvm github repo, випуск №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.