2012-03-15 27 views
107

He instalado el paquete zlib y Ruby 1.9.3 usando RVM, pero cada vez que intento instalar gemas que dice cannot load such file -- zlibno puede cargar dicho archivo - zlib incluso después de usar paquete RVM instalar zlib

Los comandos que solía instalar son

$ rvm install 1.9.3 
 
$ rvm pkg install zlib 

$ rvm reinstall 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 use 1.9.3 

$ gem install heroku 
ERROR: Loading command: install (LoadError) 
    cannot load such file -- zlib 
ERROR: While executing gem ... (NameError) 
    uninitialized constant Gem::Commands::InstallCommand 

Toda la ayuda sobre este tema me dice que acaba de hacer rvm pkg install zlib y vuelva a instalar el rubí con --with-zlib-dir=/home/username/.rvm/usr, pero esto no funcionó.

Respuesta

198

Terminé instalando zlib desde apt-get y luego reinstalando ruby ​​en not use el directorio rvm para zlib.

Así es como hacer:

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

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

$ sudo yum install zlib-devel 
$ rvm reinstall 1.9.3 
+20

o sudo yum install zlib-devel –

+1

Etiqueté la pregunta como ubuntu: P –

+4

Bueno, independientemente del sistema operativo, el consejo de @chrisfinne sigue siendo útil (al menos para mí). –

9

Los otros dos respuestas fueron casi justo ...

¡El rvm site for zlib proporciona una solución rápida!

En la parte superior de la página es una "solución rápida" seguirlo de instrucciones, lo hará:

  • resolver su instalación,
  • le proporcionan instrucciones de qué hacer para instalar zlib de su sistema
  • y mostrar cómo volver a instalar el rubí
0
 
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 
1

ruby ​​tiene un montón de dependencias de paquetes como el de zlib-de vel. Son desagradables porque no hay nada que indique que necesitas la biblioteca hasta que recibas un mensaje de error oscuro mientras intentas hacer algo de rutina.

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

rvm requirements 

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

1

Use autolibs para instalar dependencias:

rvm autolibs enable 
rvm reinstall 1.9.3 

RVM instalará automáticamente las dependencias que faltan y los utilizan para la elaboración de rubí.

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

1

La solución que funcionó para mí se describe en repo RVM github, issue #3389.

Run

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

de rubí versión 2.3.0 .