La instalación de Ubuntu rails falla en zlib

128

Me acabo de mudar a Ubuntu 8.10 como mi caja de desarrollo; es mi primera incursión seria en Linux como sistema operativo de uso diario, y estoy teniendo dificultades para poner en marcha Rails. He seguido una serie de tutoriales que parecen funcionar bien, pero cuando intento usar la instalación de gemas o la actualización de gemas en cualquier cosa, aparece un error similar al siguiente:

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- zlib (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:1
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:5
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:167:in `load_and_instantiate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:88:in `[]'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:144:in `find_command'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:131:in `process_args'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:102:in `run'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:58:in `run'
from /usr/local/bin/gem:21

Tengo (como se recomienda en los tutoriales) instalado zlib, zlib1g y zlib1g-dev. Incluso he encontrado algunos tutoriales sobre este problema en particular (todos para sabores distintos al mío, sin embargo) pero no me ayudaron.

Estoy en Ubuntu 8.10, ruby ​​versión 1.8.8dev gem versión 1.3.2

He intentado reinstalar rubíes y gemas cada uno y por separado, sin éxito.

Pablo
fuente
23
"La instalación de Ubuntu noob rails falla en zlib" Wow. Es como el poema más bello de todos.
Nosredna el
3
apt-get install zlib1g zlib1g-dev funcionó para mí en Ubuntu 10.04
bioneuralnet
este enlace también ayuda a stackoverflow.com/questions/9727908/…
Bruce

Respuestas:

297

Si se encuentra con esta pregunta tratando de instalar Ruby usando Ruby Version Manager (RVM) en Ubuntu 10.04, entonces hay instrucciones sobre cómo instalar zlib en el sitio web de rvm http://rvm.beginrescueend.com/packages/zlib/

Los pasos son:

rvm pkg install zlib

(o rvm package install zlibsi obtiene "ERROR: argumento de línea de comando no reconocido: 'pkg'" - las versiones anteriores de rvm usaban el verbo 'package' en su lugar)

luego

rvm remove 1.9.1
rvm install 1.9.1
JosephL
fuente
33
genial, el mismo enfoque funcionó para mí con una pequeña variación para 1.9.2: vm package install zlib; rvm eliminar 1.9.2-p0; rvm install 1.9.2-p0 --with-zlib-dir = $ rvm_path / usr
tardate
1
maravilloso, me preguntaba por qué rvm no estaba funcionando en Debian incluso con zlib instalado a través de apt
Martin DeMello
11
tuve el mismo problema, finalmente descubrí que esto funcionó para mí:vm package install zib; rvm remove 1.9.2; rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
TimDog
¡Muchas gracias! Yo tuve el mísmo problema. Solo tuve que reemplazar "1.9.1" con "ree" en Ubuntu. +1!
kikito
1
¡Gracias por incluir la pkgsegunda opción!
Justin
52

Estoy usando Ubuntu 10.04 (Lucid), quería instalar ruby ​​1.9.2 porque 1.9.1 no se recomienda con Rails. Así que descargué la fuente para 1.9.2 y la descomprimí / descomprimí. mi fuente de distribución es ruby-1.9.2-p0. Después de descomprimirlo, construí zlib de la siguiente manera:

cd ruby-1.9.2-p0/ext/zlib
ruby extconf.rb
make
sudo make install
sudo gem install rails

Eso solucionó el problema. Esto es similar a lo que otras personas publicaron anteriormente, pero no exactamente, así que pensé que también podría publicar exactamente lo que hice para que funcione.

AdrianVeidt
fuente
2
Este es el mejor recurso que encontré. Instalé ruby ​​desde la fuente sin rvm, y tengo un problema con zlib. Esta publicación ayuda mucho. ¡Gracias!
cristian
1
¡Gracias! Soluciona el problema en 1.9.2-p136 / Ubuntu 10.04.1.
mgutz
Gracias. Soluciona el problema en 1.9.2-p180 / Red Hat 4.1.2-46 también.
adelarsq
Esto funcionó para Ubnutu 11.04 / Ruby 1.9.2-p180. Lo intenté apt-get install zlib1g zlib1g-devpero no funcionó (es posible que zlib1g-devno se haya instalado antes de compilar Ruby).
Max Masnick
Parece que necesitas esto incluso cuando instalas ruby ​​desde la fuente. No estoy seguro de por qué no está instalado de forma predeterminada
nimrodm
22

Tengo el mismo problema en CentOS y lo soluciono ejecutando el siguiente comando:

Primero, me aseguro de que existan zlib y zlib-devel (como muchos sugeridos anteriormente).

yum install zlib zlib-devel

En segundo lugar, recompilé e instalé las fuentes de zlib que viene con ruby.

cd /home/myname/installers/ruby-1.8.7-p174/ext/zlib/
ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
make
make install

Esos comandos parecen solucionar el problema, luego ejecuto gem update --systemy el error con zlib desapareció. Luego instalo rieles con rieles de instalación de gemas. Tenga en cuenta que he instalado gem antes, y después de recompilar e instalar zlib, no recompilo ni instalo gem (en realidad, no sabía cómo desinstalarlo porque no encontré un script para hacerlo)

Eso funciona para mí ... espero que lo hagas.

Saludos.

Daniel
fuente
13

tratar

aptitude install zlib1g-dev

Entonces ve por tus asuntos.

Dan
fuente
De hecho, tuve que hacer esto antes de poder compilar el zlib que vino con la fuente de ruby
Jeremy White
8

Realmente no me gustó ninguna de estas respuestas ... ninguna realmente se centró en las necesidades y preguntas reales de los usuarios ... solo las personas que dijeron lo que hicieron ... sin contexto y ni siquiera funcionó para mí ...

Entonces, ..

Estoy instalando una nueva caja Ubuntu 8.04 LTS de 64 bits ...

Asique ...

cd ~  
wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p180.tar.gz  
tar -xvvf ruby-1.9.2-p180.tar.gz  
cd ruby-*  
./configure  
make  
install  
sudo make install  

Y luego tengo este problema con ...

gem list

no funciona ... algo sobre zLib no se encuentra basura ...

Entonces, en realidad LEA el archivo README y descubro que necesito editar un archivo ...

[my ruby source directory]/ext/Setup

y descomente la línea con zLib ... quitando el "#" en la primera columna

Luego ejecuto los comandos nuevamente ... incluidos aquí como referencia ...

./configure
make  
install  
sudo make install  

y todo está bien ... es lógico ... y está desprovisto de "rvm" y otros ... "simplemente instale más cosas para que funcione" soluciones de tipo.

Joet

Conocerse
fuente
No me ayuda. También leí el archivo Léame, y seguí sus instrucciones, pero incluso después de que todavía no puedo hacer que las gemas de rubí funcionen, todavía dice que no zlib ...
Jenny
En realidad, la respuesta es relevante ya que este es un problema común cuando se usa rvm. Su respuesta es más adecuada para personas que no usan rvm.
foamdino
7

Simplemente vaya a Ruby Source Package, descomprímalo.

Goto / your-ruby-dir / ext / zlib

ruby extconf.rb
make
sudo make install

Si faltan los paquetes, le dirá, principalmente los paquetes relacionados con libzlib

Saludos

Saurabh

Saurabh
fuente
6
rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1

Eso lo hizo. Después de numerosas persecuciones de gansos salvajes, me alegro de haber encontrado esta página.

Rod McLaughlin
fuente
1
FYI - 'paquete' se ha cambiado a 'pkg' en una versión más reciente de rvm. Ver github.com/wayneeseguin/rvm/pull/345
John MacIntyre
4

sí, y eso tampoco hizo el trabajo. Conseguí esto de otra fuente, esto finalmente lo hizo por mí donde fallaron las otras cosas.

wget http://www.blue.sky.or.jp/atelier/ruby/ruby-zlib-0.6.0.tar.gz
tar xvzf ruby-zlib-0.6.0.tar.gz
cd ruby-zlib-0.6.0
ruby extconf.rb && make
sudo make install

Vuelva a instalar gemas de rubí desde la fuente

Gracias de todos modos, muchachos.

Pablo
fuente
1
Tuve un problema al ejecutar extconf.rb. Lo resolvió (probablemente) instalando zlib-devel.
gregers
igual que aquí. Intenté todo lo demás, y finalmente blue.sky.or.jp me salvó. Gracias.
abhishek
2

El problema es que Ruby en Ubuntu no está construido contra zlib; querrás hacer una compilación de origen para instalar Ruby. Puedes hacer esto conapt-get source -b ruby

Don Werve
fuente
ok, de nuevo, Linux noob. No tengo idea de lo que acabas de decir. jajaja Quiero decir, entiendo el comando; ¿Pero qué hago después de eso?
Paul el
bueno, incluso eso no funcionó. Recibí el error "Comando de compilación 'cd ruby-defaults-4.2 && dpkg-buildpackage -b -uc' fallido"
Paul
2

¿Intentaste apt-get install libzlib-ruby?

También instale rubygems desde rubyforge. No me gusta el paquete rubygems en Ubuntu.

nkassis
fuente
2

En Debian (Squeeze):

libruby contiene zlib para ruby ​​entre todas las demás cosas que necesitará para que ruby ​​funcione correctamente en Debian. Entonces...

apt-get install libruby

Luego...

cd /usr/local/src/ruby
make clean
make
make install
cd ../rubygems
ruby setup.rb
gem install rails

Esto hizo que funcionara para mí, pero su kilometraje puede variar. Me acerqué un poco a la escopeta zlib antes de encontrar que todo lo necesario estaba cubierto por libruby.

Cita
fuente
1

Podría intentar descargar el paquete de ruby ​​enterprise deb en el sitio de phusion . E instale el pasajero a través del paquete. Sigue las instrucciones aquí . O puede probar el script bash que se encuentra aquí .

Maran
fuente
0

Al ejecutar Rails, no recomendaría usar Ruby 1.8.8dev. Quédate con 1.8.6, preferiblemente la Ruby Enterprise Edition. Vea esta publicación en RailsLab sobre lo que otras personas están usando.

Si insiste en ir a alta tecnología, instale Ruby 1.9.1.

Pero en ambos casos, constrúyalo usted mismo o use la sugerencia de Marans.

daño
fuente
Este es un mal consejo, NO use 1.9.1 con rieles. 1.9.2+ funciona bien, sin embargo.
xaxxon
Ese comentario fue colocado hace 2 años ... Ahora 1.9.3 sería el camino a seguir, por supuesto.
daños
Claro, estoy bien con eso. Pero es importante que alguien sepa que está mal.
xaxxon