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.


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


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

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.


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.


13

próbować

aptitude install zlib1g-dev

Następnie zajmij się swoim biznesem.


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


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



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.


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


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.


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.


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 .


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.