L'installation des rails Ubuntu échoue sur zlib

128

Je viens de passer à Ubuntu 8.10 en tant que boîte de développement; c'est ma première incursion sérieuse dans Linux en tant que système d'exploitation à usage quotidien, et j'ai du mal à faire fonctionner Rails. J'ai suivi un certain nombre de tutoriels qui semblent tous fonctionner correctement, mais lorsque j'essaie d'utiliser l'installation de gemme ou la mise à jour de gem sur quoi que ce soit, j'obtiens une erreur qui ressemble à ceci:

/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

J'ai installé (comme recommandé dans les didacticiels) zlib, zlib1g et zlib1g-dev. J'ai même trouvé quelques tutoriels sur ce problème particulier (tous pour des saveurs autres que la mienne, cependant) mais ils n'ont pas aidé.

Je suis sur Ubuntu 8.10, version ruby ​​1.8.8dev gem version 1.3.2

J'ai essayé de réinstaller ruby ​​et gemmes chacun et séparément, en vain.

Paul
la source
23
"L'installation des rails Ubuntu noob échoue sur zlib" Wow. C'est comme le plus beau poème de tous les temps.
Nosredna
3
apt-get install zlib1g zlib1g-dev a fonctionné pour moi sur Ubuntu 10.04
bioneuralnet
ce lien aide également stackoverflow.com/questions/9727908/…
Bruce

Réponses:

297

Si vous rencontrez cette question en essayant d'installer Ruby à l'aide de Ruby Version Manager (RVM) sur Ubuntu 10.04, il y a des instructions sur l'installation de zlib sur le site Web rvm http://rvm.beginrescueend.com/packages/zlib/

Les étapes sont:

rvm pkg install zlib

(ou rvm package install zlibsi vous obtenez "ERREUR: Argument de ligne de commande non reconnu: 'pkg'" - les anciennes versions de rvm utilisaient le verbe 'package' à la place)

puis

rvm remove 1.9.1
rvm install 1.9.1
JosephL
la source
33
super, la même approche a fonctionné pour moi avec une variation mineure pour 1.9.2: vm package install zlib; rvm remove 1.9.2-p0; rvm install 1.9.2-p0 --with-zlib-dir = $ rvm_path / usr
tard
1
merveilleux, je me demandais pourquoi rvm ne fonctionnait pas sur debian même avec zlib installé via apt
Martin DeMello
11
eu le même problème, j'ai finalement trouvé que cela fonctionnait pour moi:vm package install zib; rvm remove 1.9.2; rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
TimDog
Merci beaucoup! J'ai eu le même problème. J'ai juste dû remplacer "1.9.1" par "ree" dans Ubuntu. +1!
kikito
1
Merci d'avoir inclus la pkgdeuxième option!
Justin le
52

J'utilise Ubuntu 10.04 (Lucid), je voulais installer ruby ​​1.9.2 car 1.9.1 n'est pas recommandé avec Rails. J'ai donc téléchargé la source de la version 1.9.2 et l'ai décompressée / désarchivée. ma distribution source est ruby-1.9.2-p0. Après l'avoir déballé, j'ai construit zlib comme suit:

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

cela a résolu le problème. C'est similaire à ce que d'autres personnes ont posté ci-dessus, mais pas exactement, alors j'ai pensé que je pouvais aussi publier exactement ce que j'avais fait pour le faire fonctionner.

AdrianVeidt
la source
2
C'est la meilleure ressource que j'ai trouvée. J'ai installé ruby ​​à partir des sources sans rvm et j'ai un problème avec zlib. Ce message aide beaucoup. Je vous remercie!
cristian
1
Je vous remercie! Résout le problème sur 1.9.2-p136 / Ubuntu 10.04.1.
mgutz
Je vous remercie. Corrige également le problème sur 1.9.2-p180 / Red Hat 4.1.2-46.
adelarsq
Cela a fonctionné pour Ubnutu 11.04 / Ruby 1.9.2-p180. J'ai essayé apt-get install zlib1g zlib1g-devmais cela n'a pas fonctionné (il est possible que cela zlib1g-devn'ait pas été installé avant la compilation de Ruby).
Max Masnick
On dirait que vous en avez besoin même lorsque vous installez ruby ​​à partir des sources. Je ne sais pas pourquoi il n'est pas installé par défaut
nimrodm
22

J'ai le même problème dans CentOS et je le corrige en exécutant la commande suivante:

Tout d'abord, je m'assure que zlib et zlib-devel existent (comme beaucoup suggéré ci-dessus).

yum install zlib zlib-devel

Deuxièmement, j'ai recompilé et installé les sources de zlib fournies avec 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

Ces commandes semblent résoudre le problème, puis j'exécute gem update --systemet l'erreur avec zlib a disparu. Ensuite, j'installe des rails avec des rails d'installation gem. Remarque pour mentionner que j'avais installé gem avant, et après recompiler et installer zlib, je ne recompile ni installe gem (en fait, je ne savais pas comment le désinstaller car je n'ai pas trouvé de script pour le faire)

Cela fonctionne pour moi ... je l'espère.

Cordialement.

Daniel
la source
13

essayer

aptitude install zlib1g-dev

Alors vaquez à vos affaires.

Dan
la source
en fait, je devais le faire avant de pouvoir compiler le zlib fourni avec ruby ​​source
Jeremy White
8

Je n'ai vraiment aimé aucune de ces réponses ... aucune ne s'est vraiment concentrée sur les besoins réels des utilisateurs et la question ... juste des gens qui racontent ce qu'ils ont fait ... pas de contexte et cela n'a même pas fonctionné pour moi ...

Alors, ..

J'installe une nouvelle box Ubuntu 8.04 LTS 64 bits ...

Donc je ...

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  

Et puis j'ai ce problème avec ...

gem list

ça ne marche pas ... quelque chose à propos de zLib introuvable merde ...

Donc, je lis en fait le README et je trouve que je dois éditer un fichier ...

[my ruby source directory]/ext/Setup

et UN-COMMENTER la ligne avec zLib dedans ... en supprimant le "#" dans la première colonne

Ensuite, je lance à nouveau les commandes ... incluses ici pour référence ...

./configure
make  
install  
sudo make install  

et tout va bien ... c'est logique ... et est dépourvu de "rvm" et autres ... "il suffit d'installer plus de truc pour que ça marche" des solutions de type.

Joët

Se connaître
la source
Cela ne m'aide pas. J'ai lu le readme aussi et j'ai suivi ses instructions, mais même après je ne peux toujours pas faire fonctionner les gemmes de rubis, avec toujours pas de zlib ...
Jenny
En fait, la réponse est pertinente car il s'agit d'un problème courant lors de l'utilisation de rvm. Votre réponse est plus adaptée aux personnes qui n'utilisent pas rvm.
foamdino
7

Accédez au paquet source Ruby, décompressez-le.

Aller à / votre-répertoire-ruby / ext / zlib

ruby extconf.rb
make
sudo make install

Si les paquets manquent, cela vous le dira, principalement les paquets liés à libzlib

Cordialement

Saurabh

Saurabh
la source
6
rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1

Cela l'a fait. Après de nombreuses poursuites à l'oie sauvage, je suis content d'avoir trouvé cette page.

Rod McLaughlin
la source
1
FYI - 'package' a été changé en 'pkg' dans une version plus récente de rvm. Voir github.com/wayneeseguin/rvm/pull/345
John MacIntyre
4

oui, et cela n'a pas non plus fait l'affaire. J'ai obtenu ceci d'une autre source, cela l'a finalement fait pour moi là où les autres choses ont échoué.

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

Réinstaller les gemmes rubis de la source

Merci quand même, les gars.

Paul
la source
1
J'ai eu un problème lors de l'exécution de extconf.rb. Résolu (probablement) en installant zlib-devel.
gregers
pareil ici. J'ai tout essayé et finalement blue.sky.or.jp m'a sauvé. Merci.
abhishek
2

Le problème est que Ruby sur Ubuntu n'est pas construit contre zlib; vous voudrez faire une compilation source pour installer Ruby. Vous pouvez le faire avecapt-get source -b ruby

Don Werve
la source
ok, encore une fois, linux noob. Aucune idée de ce que vous venez de dire. lol. Je veux dire, je comprends la commande; mais qu'est-ce que je fais après ça?
Paul
eh bien, maintenant, même cela ne fonctionnait pas. J'ai eu une erreur "Commande de construction" cd ruby-defaults-4.2 && dpkg-buildpackage -b -uc 'failed "
Paul
2

Avez-vous essayé apt-get install libzlib-ruby?

Installez également des rubygems de rubyforge. Je n'aime pas le paquet rubygems dans Ubuntu.

nkassis
la source
2

Sur Debian (Squeeze):

libruby contient zlib pour ruby ​​parmi tous les autres éléments dont vous aurez besoin pour que ruby ​​fonctionne correctement sur Debian. Alors...

apt-get install libruby

Ensuite...

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

Cela a fonctionné pour moi, mais votre kilométrage peut varier. J'ai fait une légère approche fusil à pompe de zlib avant de constater que tout le nécessaire était couvert par libruby.

Rendez-vous amoureux
la source
1

Vous pouvez essayer de télécharger le package deb ruby ​​enterprise sur le site phusion . Et installez le passager à travers le paquet. Suivez les instructions ici . Ou vous pouvez essayer le script bash trouvé ici .

Maran
la source
0

Lors de l'exécution de Rails, je ne recommanderais pas d'utiliser Ruby 1.8.8dev. Tenez-vous-en à la version 1.8.6, de préférence Ruby Enterprise Edition. Voir ce post sur RailsLab ce que les autres utilisent.

Si vous insistez pour passer à la haute technologie, installez Ruby 1.9.1.

Mais dans les deux cas, construisez-le vous-même ou utilisez la suggestion de Marans.

nuire
la source
C'est un mauvais conseil, n'utilisez PAS 1.9.1 avec des rails. 1.9.2+ fonctionne bien, cependant.
xaxxon
Ce commentaire a été placé il y a 2 ans ... Maintenant, le 1.9.3 serait bien sûr la voie à suivre.
nuire
bien sûr, je suis d'accord avec ça. Mais il est important que quelqu'un sache que c'est faux.
xaxxon