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é.

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

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

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.


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


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

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 .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.