impossible de charger un tel fichier - zlib même après avoir utilisé rvm pkg install zlib

112

J'ai installé le package zlib et ruby ​​1.9.3 en utilisant rvm, mais chaque fois que j'essaye d'installer des gemmes, il est dit cannot load such file -- zlib

Les commandes que j'ai utilisées pour installer sont

$ rvm install 1.9.3
$ rvm pkg installer zlib

$ rvm réinstaller 1.9.3 --with-readline-dir = / home / nom d'utilisateur / .rvm / usr \
    --with-iconv-dir = / home / nom d'utilisateur / .rvm / usr \
    --with-zlib-dir = / home / nom d'utilisateur / .rvm / usr \
    --with-openssl-dir = / home / nom d'utilisateur / .rvm / usr

$ rvm utilise 1.9.3

$ gem installer heroku
ERREUR: commande de chargement: install (LoadError)
    impossible de charger un tel fichier - zlib
ERREUR: lors de l'exécution de gem ... (NameError)
    constante non initialisée Gem :: Commands :: InstallCommand

Toute l'aide sur ce sujet me dit de simplement faire rvm pkg install zlib, puis de réinstaller le ruby ​​avec --with-zlib-dir=/home/username/.rvm/usr, mais cela n'a pas fonctionné.

Razor Storm
la source

Réponses:

201

J'ai fini par installer zlib depuis apt-get, puis réinstaller ruby ​​pour ne pas utiliser le répertoire rvm pour zlib.

Voici comment faire:

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

[Modifier] Comme le commente @chrisfinne le mentionne, sur les systèmes basés sur CentOS / RedHat:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3
Razor Storm
la source
21
ou sudo yum installer zlib-devel
chris finne
4
Et bien, quel que soit l'OS, les conseils de @chrisfinne sont toujours utiles (pour moi du moins)!
A parfaitement fonctionné pour moi. Bien que j'aie dû recompiler une fois de plus car il me manquait aussi libssl-dev (j'en avais besoin car rvm voulait récupérer les sources ruby ​​via HTTPS) :-)
tr9sh
9

Les deux autres réponses étaient presque exactes ...

Le site RVM pour zlib fournit une solution rapide!

En haut de la page se trouve un «correctif rapide», suivez ses instructions, il:

  • réparer votre installation,
  • vous fournir des instructions sur la marche à suivre pour installer zlib à partir de votre système
  • et montrez comment réinstaller ruby
mpapis
la source
1

Ruby a un tas de dépendances de paquet comme celle sur zlib-devel. Ils sont désagréables car rien n'indique que vous avez besoin de la bibliothèque jusqu'à ce que vous obteniez un message d'erreur obscur en essayant de faire quelque chose de routine.

La solution est d'utiliser rvm . Utilisez-le même si vous n'avez besoin que d'une seule version de ruby. Pourquoi? Parce qu'alors tu peux faire

rvm requirements

Cela sondera votre système d'exploitation particulier et produira un ensemble de commandes que vous pourrez recopier sur la ligne de commande pour installer les packages manquants.

Isaac Rabinovitch
la source
1

Utilisez les autolibs pour installer les dépendances:

rvm autolibs enable
rvm reinstall 1.9.3

RVM installera automatiquement les dépendances manquantes et les utilisera pour compiler ruby.

Plus de détails sur autolibs => http://rvm.io/rvm/autolibs

mpapis
la source
1
rvm pkg installer openssl && rvm pkg installer zlib && rvm pkg installer libyaml &&
  rvm pkg installer 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
la source
1

La solution qui a fonctionné pour moi est décrite dans rvm github repo, issue # 3389 .

Courir

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

pour la version ruby 2.3.0 .

Belgoros
la source