no se puede cargar dicho archivo - zlib incluso después de usar rvm pkg install zlib

112

Instalé el paquete zlib y ruby ​​1.9.3 usando rvm, pero cada vez que intento instalar gems, dice cannot load such file -- zlib

Los comandos que solía instalar son

$ rvm install 1.9.3
$ rvm pkg instalar zlib

$ rvm reinstalar 1.9.3 --with-readline-dir = / home / username / .rvm / usr \
    --with-iconv-dir = / inicio / nombre de usuario / .rvm / usr \
    --with-zlib-dir = / inicio / nombre de usuario / .rvm / usr \
    --with-openssl-dir = / inicio / nombre de usuario / .rvm / usr

$ rvm use 1.9.3

$ gem install heroku
ERROR: Comando de carga: instalar (LoadError)
    no se puede cargar dicho archivo - zlib
ERROR: Al ejecutar la gema ... (NameError)
    constante no inicializada Gem :: Commands :: InstallCommand

Toda la ayuda sobre este tema me dice que simplemente lo haga rvm pkg install zliby luego reinstale el ruby ​​con --with-zlib-dir=/home/username/.rvm/usr, pero esto no funcionó.

Tormenta de navajas
fuente

Respuestas:

201

Terminé instalando zlib desde apt-get y luego reinstalando ruby ​​para no usar el directorio rvm para zlib.

He aquí cómo hacerlo:

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

[Editar] Como menciona el comentarista @chrisfinne, en los sistemas basados ​​en CentOS / RedHat:

$ sudo yum install zlib-devel
$ rvm reinstall 1.9.3
Tormenta de navajas
fuente
21
o sudo yum install zlib-devel
chris finne
4
Bueno, independientemente del sistema operativo, ¡el consejo de @chrisfinne sigue siendo útil (al menos para mí)!
Funcionó perfectamente para mí. Aunque tuve que volver a compilar una vez más ya que también me faltaba libssl-dev (lo necesitaba porque rvm quería recuperar las fuentes de ruby ​​a través de HTTPS) :-)
tr9sh
9

Las otras dos respuestas eran casi correctas ...

¡El sitio rvm para zlib ofrece una solución rápida!

En la parte superior de la página hay un "arreglo rápido", siga sus instrucciones, lo hará:

  • arregla tu instalación,
  • proporcionarle instrucciones sobre qué hacer para instalar zlib desde su sistema
  • y mostrar cómo reinstalar ruby
mpapis
fuente
1

Ruby tiene un montón de dependencias de paquetes como la de zlib-devel. Son desagradables porque no hay nada que indique que necesita la biblioteca hasta que recibe un mensaje de error oscuro al intentar hacer algo de rutina.

La solución es usar rvm . Úselo incluso si solo necesita una versión de ruby. ¿Por qué? Porque entonces puedes hacer

rvm requirements

Esto probará su sistema operativo particular y producirá un conjunto de comandos que puede copiar de nuevo a la línea de comandos para instalar los paquetes que faltan.

Isaac Rabinovitch
fuente
1

Use autolibs para instalar dependencias:

rvm autolibs enable
rvm reinstall 1.9.3

RVM instalará automáticamente las dependencias faltantes y las usará para compilar ruby.

Más detalles sobre autolibs => http://rvm.io/rvm/autolibs

mpapis
fuente
1
rvm pkg instalar openssl && rvm pkg instalar zlib && rvm pkg instalar libyaml &&
  rvm pkg instalar iconv
rvm install 1.9.3-p0 --with-opt-dir = $ HOME / .rvm / usr \
  --con-libxml2-dir = / usr / local / Cellar / libxml2 / 2.7.8 \
  --with-readline-dir = / usr / local / Cellar / readline / 6.2.1
Kewin
fuente
1

La solución que funcionó para mí se describe en rvm github repo, número 3389 .

correr

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

para la versión ruby 2.3.0 .

belgoros
fuente