kann eine solche Datei nicht laden - zlib auch nach Verwendung von rvm pkg install zlib

112

Ich habe zlib package und ruby ​​1.9.3 mit rvm installiert, aber wann immer ich versuche, gems zu installieren, heißt es cannot load such file -- zlib

Die Befehle, die ich zur Installation verwendet habe, sind

$ rvm install 1.9.3
$ rvm pkg installiere zlib

$ rvm neu installieren 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 benutze 1.9.3

$ gem install heroku
FEHLER: Ladebefehl: install (LoadError)
    kann solche Datei nicht laden - zlib
FEHLER: Während der Ausführung von gem ... (NameError)
    nicht initialisierte Konstante Gem :: Commands :: InstallCommand

Die ganze Hilfe zu diesem Thema sagt mir, ich soll es einfach tun rvm pkg install zlibund dann den Rubin mit neu installieren --with-zlib-dir=/home/username/.rvm/usr, aber das hat nicht funktioniert.

Rasiermessersturm
quelle

Antworten:

201

Am Ende habe ich zlib von apt-get installiert und dann rubin neu installiert, um das rvm-Verzeichnis für zlib nicht zu verwenden.

So geht's:

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

[Bearbeiten] Wie Kommentator @chrisfinne erwähnt, auf CentOS / RedHat-basierten Systemen:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3
Rasiermessersturm
quelle
21
oder sudo yum install zlib-devel
chris finne
4
Unabhängig vom Betriebssystem ist der Rat von @chrisfinne immer noch nützlich (zumindest für mich)!
Hat perfekt für mich funktioniert. Obwohl ich noch einmal neu kompilieren musste, da mir auch libssl-dev fehlte (ich brauchte es, weil rvm die Ruby-Quellen über HTTPS abrufen wollte) :-)
tr9sh
9

Die beiden anderen Antworten waren fast richtig ...

Die RVM-Site für zlib bietet eine schnelle Lösung!

Oben auf der Seite befindet sich eine "Schnellkorrektur", die den Anweisungen folgt.

  • Reparieren Sie Ihre Installation,
  • Geben Sie Anweisungen, wie Sie zlib von Ihrem System installieren können
  • und zeigen, wie man Ruby neu installiert
mpapis
quelle
1

Ruby hat eine Reihe von Paketabhängigkeiten wie die von zlib-devel. Sie sind böse, weil nichts darauf hindeutet, dass Sie die Bibliothek benötigen, bis eine obskure Fehlermeldung angezeigt wird, während Sie versuchen, etwas Routine zu tun.

Die Lösung besteht darin, rvm zu verwenden . Verwenden Sie es auch, wenn Sie nur eine Version von Ruby benötigen. Warum? Denn dann kannst du es tun

rvm requirements

Dadurch wird Ihr spezielles Betriebssystem überprüft und eine Reihe von Befehlen erstellt, die Sie in die Befehlszeile zurückkopieren können, um die fehlenden Pakete zu installieren.

Isaac Rabinovitch
quelle
1

Verwenden Sie Autolibs, um Abhängigkeiten zu installieren:

rvm autolibs enable
rvm reinstall 1.9.3

RVM installiert automatisch fehlende Abhängigkeiten und verwendet sie zum Kompilieren von Ruby.

Weitere Details zu autolibs => http://rvm.io/rvm/autolibs

mpapis
quelle
1
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
Kewin
quelle
1

Die Lösung, die für mich funktioniert hat, ist in rvm github repo, Ausgabe Nr. 3389 beschrieben .

Lauf

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

für Ruby 2.3.0 Version.

Belgoros
quelle