Die Installation von Ubuntu Rails schlägt auf zlib fehl

128

Ich bin gerade auf Ubuntu 8.10 als meine Entwicklungsbox umgestiegen. Es ist mein erster ernsthafter Einstieg in Linux als Betriebssystem für den täglichen Gebrauch, und es fällt mir schwer, Rails zum Laufen zu bringen. Ich habe eine Reihe von Tutorials befolgt, die alle gut zu funktionieren scheinen, aber wenn ich versuche, gem install oder gem update für irgendetwas zu verwenden, erhalte ich eine Fehlermeldung, die folgendermaßen aussieht:

/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

Ich habe (wie in den Tutorials empfohlen) zlib, zlib1g und zlib1g-dev installiert. Ich habe sogar ein paar Tutorials zu diesem speziellen Problem gefunden (alle für andere als meine Geschmacksrichtungen), aber sie haben nicht geholfen.

Ich bin auf Ubuntu 8.10, Ruby Version 1.8.8dev Gem Version 1.3.2

Ich habe versucht, Rubin und Edelsteine ​​einzeln und einzeln neu zu installieren, ohne Erfolg.

Paul
quelle
23
"Die Installation von Ubuntu noob Rails schlägt auf zlib fehl" Wow. Das ist wie das schönste Gedicht aller Zeiten.
Nosredna
3
apt-get install zlib1g zlib1g-dev arbeitete für mich unter Ubuntu 10.04
bioneuralnet
Dieser Link hilft auch stackoverflow.com/questions/9727908/…
Bruce

Antworten:

297

Wenn Sie auf diese Frage stoßen, wenn Sie versuchen, Ruby mit Ruby Version Manager (RVM) unter Ubuntu 10.04 zu installieren, finden Sie Anweisungen zur Installation von zlib auf der rvm-Website http://rvm.beginrescueend.com/packages/zlib/.

Die Schritte sind:

rvm pkg install zlib

(oder rvm package install zlibwenn Sie "FEHLER: Nicht erkanntes Befehlszeilenargument: 'pkg'" erhalten - ältere Versionen von rvm verwendeten stattdessen das Verb 'package')

dann

rvm remove 1.9.1
rvm install 1.9.1
JosephL
quelle
33
großartig, der gleiche Ansatz hat bei mir mit einer kleinen Variation für 1.9.2 funktioniert: vm package install zlib; rvm entferne 1.9.2-p0; rvm install 1.9.2-p0 --with-zlib-dir = $ rvm_path / usr
tardate
1
wunderbar, ich habe mich gefragt, warum rvm nicht mit debian funktioniert, obwohl zlib über apt installiert wurde
Martin DeMello
11
hatte die gleichen Probleme, fand schließlich, dass dies für mich funktioniert:vm package install zib; rvm remove 1.9.2; rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
TimDog
Vielen Dank! Ich hatte das gleiche Problem. Ich musste nur "1.9.1" in Ubuntu durch "ree" ersetzen. +1!
Kikito
1
Vielen Dank für die Aufnahme der pkgzweiten Option!
Justin
52

Ich verwende Ubuntu 10.04 (Lucid), ich wollte Ruby 1.9.2 installieren, da 1.9.1 mit Rails nicht empfohlen wird. Also habe ich die Quelle für 1.9.2 heruntergeladen und entpackt / entarchiviert. Meine Quelldistribution ist Ruby-1.9.2-p0. Nachdem ich es ausgepackt hatte, baute ich zlib wie folgt:

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

das hat das Problem behoben. Dies ist ähnlich wie das, was andere Leute oben gepostet haben, aber nicht genau, also dachte ich mir, ich könnte genauso gut genau das posten, was ich getan habe, um es in Gang zu bringen.

AdrianVeidt
quelle
2
Dies ist die beste Ressource, die ich gefunden habe. Ich habe Ruby von der Quelle ohne RVM installiert und bekomme ein Problem mit Zlib. Dieser Beitrag hilft sehr. Danke dir!
Cristian
1
Danke dir! Behebt das Problem unter 1.9.2-p136 / Ubuntu 10.04.1.
mgutz
Danke dir. Behebt das Problem auch unter 1.9.2-p180 / Red Hat 4.1.2-46.
Adelarsq
Dies funktionierte für Ubnutu 11.04 / Ruby 1.9.2-p180. Ich habe es versucht, apt-get install zlib1g zlib1g-devaber es hat nicht funktioniert (es ist möglich, dass zlib1g-deves nicht installiert wurde, bevor ich Ruby kompiliert habe).
Max Masnick
Scheint, als ob Sie dies brauchen, selbst wenn Sie Ruby von der Quelle installieren. Nicht sicher, warum es nicht standardmäßig installiert ist
Nimrodm
22

Ich habe das gleiche Problem in CentOS und behebe es, indem ich den folgenden Befehl ausführe:

Zunächst stelle ich sicher, dass zlib und zlib-devel existieren (wie viele oben vorgeschlagene).

yum install zlib zlib-devel

Zweitens habe ich die mit Ruby gelieferten zlib-Quellen neu kompiliert und installiert.

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

Diese Befehle scheinen das Problem zu beheben, dann führe ich aus gem update --systemund der Fehler mit zlib verschwand. Dann installiere ich Schienen mit Edelsteinschienen. Beachten Sie, dass ich gem zuvor installiert habe und nach dem Neukompilieren und Installieren von zlib weder neu kompiliere noch gem installiere (eigentlich wusste ich nicht, wie ich es deinstallieren soll, weil ich kein Skript dafür gefunden habe).

Das funktioniert bei mir ... hoffe es dir.

Grüße.

Daniel
quelle
13

Versuchen

aptitude install zlib1g-dev

Dann gehen Sie Ihrem Geschäft nach.

Dan
quelle
Ich musste dies tatsächlich tun, bevor ich die mit Ruby Source gelieferte Zlib kompilieren konnte
Jeremy White
8

Ich mochte keine dieser Antworten wirklich ... keine konzentrierte sich wirklich auf die tatsächlichen Bedürfnisse und Fragen der Benutzer ... nur Leute, die erzählten, was sie taten ... kein Kontext und es funktionierte nicht einmal für mich ...

So, ..

Ich installiere eine neue Box Ubuntu 8.04 LTS 64-Bit ...

Also, ich ...

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  

Und dann habe ich dieses Problem mit ...

gem list

es funktioniert nicht ... etwas über zLib nicht gefunden Mist ...

Also, ich lese tatsächlich die README und finde, dass ich eine Datei bearbeiten muss ...

[my ruby source directory]/ext/Setup

und UN-KOMMENTIEREN Sie die Zeile mit zLib darin ... indem Sie das "#" in der ersten Spalte entfernen

Dann führe ich die Befehle erneut aus ... hier als Referenz enthalten ...

./configure
make  
install  
sudo make install  

und alles ist gut ... es ist logisch ... und es gibt keine "rvm" und andere ... "installiere einfach mehr Sachen, damit es funktioniert" -Lösungen.

Joet

Erkenne dich
quelle
Hilft mir nicht Ich habe auch die Readme-Datei gelesen und die Anweisungen befolgt, aber selbst nachdem ich immer noch keine Rubin-Edelsteine ​​zum Laufen gebracht habe, steht immer noch kein Zlib ...
Jenny
Tatsächlich ist die Antwort relevant, da dies ein häufiges Problem bei der Verwendung von rvm ist. Ihre Antwort ist besser für Leute geeignet, die kein RVM verwenden.
Foamdino
7

Gehen Sie einfach zum Ruby Source Package und entpacken Sie es.

Gehe zu / your-ruby-dir / ext / zlib

ruby extconf.rb
make
sudo make install

Wenn die Pakete fehlen, werden Sie darüber informiert, hauptsächlich libzlib-bezogene Pakete

Grüße

Saurabh

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

Das hat es geschafft. Nach zahlreichen Verfolgungsjagden bin ich froh, diese Seite gefunden zu haben.

Rod McLaughlin
quelle
1
Zu Ihrer Information - 'package' wurde in einer neueren Version von rvm in 'pkg' geändert. Siehe github.com/wayneeseguin/rvm/pull/345
John MacIntyre
4

Ja, und das hat auch nicht funktioniert. Ich habe das von einer anderen Quelle bekommen, das hat es endlich für mich getan, wo die anderen Sachen versagt haben.

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

Installieren Sie die Rubinsteine ​​aus der Quelle neu

Trotzdem danke Jungs.

Paul
quelle
1
Ich hatte ein Problem beim Ausführen von extconf.rb. Es wurde (wahrscheinlich) durch die Installation von zlib-devel behoben.
Gregers
hier gilt das gleiche. Versuchte alles andere und schließlich rettete mich blue.sky.or.jp. Vielen Dank.
Abhishek
2

Das Problem ist, dass Ruby unter Ubuntu nicht gegen zlib erstellt wurde. Sie möchten einen Quell-Build erstellen, um Ruby zu installieren. Sie können dies mit tunapt-get source -b ruby

Don Werve
quelle
ok, wieder Linux Noob. Keine Ahnung, was du gerade gesagt hast. lol. Ich meine, ich verstehe den Befehl; aber was mache ich danach?
Paul
Nun, auch so viel hat nicht funktioniert. Ich habe den Fehler "Build-Befehl 'cd ruby-defaults-4.2 && dpkg-buildpackage -b -uc' fehlgeschlagen" erhalten
Paul
2

Haben Sie versucht, apt-get libzlib-ruby zu installieren?

Installieren Sie auch Rubygems von Rubyforge. Ich mag das Rubygems-Paket in Ubuntu nicht.

nkassis
quelle
2

Auf Debian (Squeeze):

libruby enthält zlib for ruby ​​unter all den anderen Dingen, die Sie benötigen, damit Ruby unter Debian richtig funktioniert. So...

apt-get install libruby

Dann...

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

Dies hat bei mir funktioniert, aber Ihr Kilometerstand kann variieren. Ich machte eine leichte Schrotflinten-Annäherung an Zlib, bevor ich feststellte, dass alles, was benötigt wurde, von Libruby bedeckt war.

Stelldichein
quelle
1

Sie können versuchen, das Ruby Enterprise Deb-Paket von der Phusion- Site herunterzuladen . Und Passagier durch das Paket installieren. Folgen Sie den Anweisungen hier . Oder versuchen Sie es mit dem Bash-Skript, das Sie hier finden .

Maran
quelle
0

Beim Ausführen von Rails würde ich die Verwendung von Ruby 1.8.8dev nicht empfehlen. Halten Sie sich an 1.8.6, vorzugsweise die Ruby Enterprise Edition. Sehen Sie sich diesen Beitrag auf RailsLab an, was andere Benutzer verwenden.

Wenn Sie auf High-Tech bestehen, installieren Sie Ruby 1.9.1.

Aber in beiden Fällen bauen Sie es selbst oder verwenden Sie Marans Vorschlag.

Schaden
quelle
Dies ist ein schlechter Rat. Verwenden Sie 1.9.1 NICHT mit Schienen. 1.9.2+ funktioniert jedoch einwandfrei.
Xaxxon
Dieser Kommentar wurde vor 2 Jahren abgegeben ... Jetzt wäre 1.9.3 natürlich der richtige Weg.
Schaden
Klar, damit bin ich einverstanden. Aber es ist wichtig, dass jemand weiß, dass es falsch ist.
Xaxxon