Instalacja szyn Ubuntu kończy się niepowodzeniem na zlib

128

Właśnie przeniosłem się na Ubuntu 8.10 jako mój programista; to mój pierwszy poważny wypad do Linuksa jako systemu operacyjnego używanego codziennie i ciężko mi jest uruchomić Railsy. Postępowałem zgodnie z kilkoma samouczkami, z których wszystkie wydają się działać dobrze, ale kiedy próbuję użyć instalacji gem lub aktualizacji gem na czymkolwiek, pojawia się błąd, który wygląda tak:

/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

Zainstalowałem (zgodnie z zaleceniami w samouczkach) zlib, zlib1g i zlib1g-dev. Znalazłem nawet kilka samouczków dotyczących tego konkretnego problemu (wszystkie jednak dotyczyły innych smaków niż mój), ale nie pomogły.

Jestem na Ubuntu 8.10, Ruby w wersji 1.8.8dev gem w wersji 1.3.2

Próbowałem przeinstalować ruby ​​i klejnoty oddzielnie, ale bezskutecznie.

Paweł
źródło
23
„Instalacja szyn Ubuntu noob kończy się niepowodzeniem na zlib” Wow. To najpiękniejszy wiersz wszechczasów.
Nosredna
3
apt-get install zlib1g zlib1g-dev pracował dla mnie na Ubuntu 10.04
bioneuralnet
ten link pomaga również stackoverflow.com/questions/9727908/ ...
Bruce

Odpowiedzi:

297

Jeśli napotkasz to pytanie, próbując zainstalować Ruby za pomocą programu Ruby Version Manager (RVM) w systemie Ubuntu 10.04, znajdziesz instrukcje dotyczące instalowania zlib na stronie internetowej rvm http://rvm.beginrescueend.com/packages/zlib/

Kroki są następujące:

rvm pkg install zlib

(lub rvm package install zlibjeśli pojawi się „BŁĄD: Nierozpoznany argument wiersza poleceń: 'pkg'” - starsze wersje rvm zamiast tego używały czasownika 'pakiet')

następnie

rvm remove 1.9.1
rvm install 1.9.1
Joseph L.
źródło
33
świetnie, to samo podejście działało dla mnie z niewielką zmianą dla 1.9.2: vm package install zlib; rvm usuń 1.9.2-p0; rvm install 1.9.2-p0 --with-zlib-dir = $ rvm_path / usr
tardate
1
wspaniale, zastanawiałem się, dlaczego rvm nie działa na Debianie, nawet z zlib zainstalowanym przez apt
Martin DeMello
11
miał ten sam problem, w końcu okazało się, że to zadziałało dla mnie:vm package install zib; rvm remove 1.9.2; rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
TimDog,
Wielkie dzięki! Miałem ten sam problem. Po prostu musiałem zamienić „1.9.1” na „ree” w Ubuntu. +1!
kikito,
1
Dzięki za włączenie pkgdrugiej opcji!
Justin
52

Używam Ubuntu 10.04 (Lucid), chciałem zainstalować Ruby 1.9.2, ponieważ 1.9.1 nie jest zalecane w Railsach. Więc pobrałem źródło dla 1.9.2 i rozpakowałem / rozpakowałem je. moja dystrybucja źródłowa to ruby-1.9.2-p0. Po rozpakowaniu zbudowałem zlib w następujący sposób:

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

to rozwiązało problem. Jest to podobne do tego, co inni ludzie opublikowali powyżej, ale nie do końca, więc pomyślałem, że równie dobrze mogę opublikować dokładnie to, co zrobiłem, aby to działało.

AdrianVeidt
źródło
2
To najlepsze źródło, jakie znalazłem. Zainstalowałem Ruby ze źródła bez rvm i mam problem z zlib. Ten post bardzo pomaga. Dziękuję Ci!
cristian
1
Dziękuję Ci! Rozwiązuje problem w wersji 1.9.2-p136 / Ubuntu 10.04.1.
mgutz
Dziękuję Ci. Naprawia problem w wersji 1.9.2-p180 / Red Hat 4.1.2-46.
adelarsq
To działało w przypadku Ubnutu 11.04 / Ruby 1.9.2-p180. Próbowałem, apt-get install zlib1g zlib1g-devale to nie zadziałało (możliwe, że zlib1g-devnie został zainstalowany przed skompilowaniem Rubiego).
Max Masnick
Wygląda na to, że potrzebujesz tego nawet po zainstalowaniu Rubiego ze źródła. Nie wiem, dlaczego nie jest instalowany domyślnie
nimrodm
22

Mam ten sam problem w CentOS i napraw go, wykonując następujące polecenie:

Po pierwsze, upewniam się, że istnieją zlib i zlib-devel (jak wiele sugerowanych powyżej).

yum install zlib zlib-devel

Po drugie, ponownie skompilowałem i zainstalowałem źródła zlib, które są dostarczane z rubinem.

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

Wydaje się, że te polecenia rozwiązują problem, a następnie wykonuję gem update --systemi błąd z zlib zniknął. Następnie instaluję szyny za pomocą szyn montażowych gem. Uwaga, aby wspomnieć, że wcześniej zainstalowałem gem, a po ponownej kompilacji i zainstalowaniu zlib nie rekompiluję ani nie instaluję gem (właściwie nie wiedziałem, jak go odinstalować, ponieważ nie znalazłem skryptu, który to zrobił)

To działa dla mnie ... mam nadzieję, że tak.

Pozdrowienia.

Daniel
źródło
13

próbować

aptitude install zlib1g-dev

Następnie zajmij się swoim biznesem.

Dan
źródło
I rzeczywiście miał to zrobić, zanim będzie mógł skompilować zlib dołączonej do źródła ruby
Jeremy Białą
8

Naprawdę nie podobała mi się żadna z tych odpowiedzi ... żadna tak naprawdę nie skupiała się na rzeczywistych potrzebach i pytaniach użytkowników ... tylko ludzie opowiadający, co zrobili ... bez kontekstu i nawet dla mnie to nie zadziałało ...

Więc, ..

Instaluję nowe pudełko Ubuntu 8.04 LTS 64-bit ...

Więc ja ...

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  

A potem mam ten problem z ...

gem list

to nie działa ... coś o zLib nie znalazłem bzdur ...

Więc faktycznie CZYTAJ README i stwierdzam, że muszę edytować plik ...

[my ruby source directory]/ext/Setup

i ODKOMENTUJ wiersz zawierający zLib ... usuwając znak „#” w pierwszej kolumnie

Następnie ponownie uruchamiam polecenia ... zawarte tutaj w celach informacyjnych ...

./configure
make  
install  
sudo make install  

i wszystko jest w porządku ... to logiczne ... i jest pozbawione "rvm" i innych ... po prostu zainstaluj więcej rzeczy, aby działało ".

Joet

Znajomość
źródło
To mi nie pomaga. Przeczytałem również plik readme i postępowałem zgodnie z jego instrukcjami, ale nawet po tym, jak nadal nie mogę zmusić rubinowych klejnotów do pracy, wciąż mówi o braku zlib ...
Jenny
Właściwie odpowiedź jest istotna, ponieważ jest to częsty problem podczas korzystania z rvm. Twoja odpowiedź jest bardziej odpowiednia dla osób, które nie używają rvm.
foamdino,
7

Po prostu uruchom pakiet źródłowy Ruby, rozpakuj go.

Idź do / twój-ruby-dir / ext / zlib

ruby extconf.rb
make
sudo make install

Jeśli brakuje pakietów, powie ci, głównie pakiety związane z libzlib

pozdrowienia

Saurabh

Saurabh
źródło
6
rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1

Zrobiło to. Po licznych pogoni za dzikimi gęsiami cieszę się, że znalazłem tę stronę.

Rod McLaughlin
źródło
1
FYI - „pakiet” został zmieniony na „pkg” w nowszej wersji rvm. Zobacz github.com/wayneeseguin/rvm/pull/345
John MacIntyre,
4

tak, i to też nie zadziałało. Mam to z innego źródła, to w końcu zrobiło to dla mnie tam, gdzie inne rzeczy zawiodły.

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

Zainstaluj ponownie ruby ​​gems ze źródła

W każdym razie dzięki, chłopaki.

Paweł
źródło
1
Miałem problem z uruchomieniem extconf.rb. Rozwiązałem to (prawdopodobnie) instalując zlib-devel.
gregers
to samo tutaj. Próbowałem wszystkiego innego i ostatecznie blue.sky.or.jp uratował mnie. Dzięki.
abhishek
2

Problem polega na tym, że Ruby na Ubuntu nie jest zbudowany na zlib; będziesz chciał zrobić kompilację źródeł, aby zainstalować Rubiego. Możesz to zrobić za pomocąapt-get source -b ruby

Don Werve
źródło
ok, znowu linux noob. Nie mam pojęcia, co właśnie powiedziałeś. lol. To znaczy, rozumiem polecenie; ale co mam zrobić po tym?
Paul
cóż, teraz nawet to nie działało. Otrzymałem błąd „Polecenie kompilacji 'cd ruby-defaults-4.2 && dpkg-buildpackage -b -uc' nie powiodło się”
Paul
2

Czy próbowałeś apt-get install libzlib-ruby?

Zainstaluj także rubygemy z rubyforge. Nie podoba mi się pakiet rubygems w Ubuntu.

nkassis
źródło
2

W Debianie (Squeeze):

libruby zawiera zlib dla ruby, pośród wszystkich innych rzeczy potrzebnych do poprawnego działania ruby ​​na Debianie. Więc...

apt-get install libruby

Następnie...

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

To sprawiło, że to zadziałało, ale Twój przebieg może się różnić. Zrobiłem lekkie podejście strzelby do zlib, zanim stwierdziłem, że wszystko co potrzebne jest pokryte libruby.

Schadzka
źródło
1

Możesz spróbować pobrać pakiet deb ruby ​​enterprise z witryny phusion . I zainstaluj pasażera za pośrednictwem pakietu. Postępuj zgodnie z instrukcjami tutaj . Możesz też wypróbować skrypt bash znaleziony tutaj .

Maran
źródło
0

Podczas uruchamiania Railsów nie polecałbym używania Ruby 1.8.8dev. Pozostań przy 1.8.6, najlepiej Ruby Enterprise Edition. Zobacz ten post na RailsLab, czego używają inni ludzie.

Jeśli nalegasz na zaawansowaną technologię, zainstaluj Ruby 1.9.1.

Ale w obu przypadkach zbuduj go samodzielnie lub skorzystaj z sugestii Maransa.

zaszkodzić
źródło
To zła rada, NIE używaj 1.9.1 z szynami. Jednak 1.9.2+ działa dobrze.
xaxxon
Ten komentarz został umieszczony 2 lata temu ... Teraz oczywiście będzie to 1.9.3.
zaszkodzić
jasne, nie przeszkadza mi to. Ale ważne jest, aby ktoś wiedział, że to źle.
xaxxon