Instalação de trilhos do Ubuntu falha no zlib

128

Acabei de mudar para o Ubuntu 8.10 como minha caixa de desenvolvimento; é a minha primeira incursão séria no Linux como um sistema operacional de uso diário, e estou tendo dificuldades para iniciar o Rails. Eu segui vários tutoriais que parecem funcionar bem, mas quando tento usar a instalação ou atualização de gem em qualquer coisa, recebo um erro parecido com o seguinte:

/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

Eu (como recomendado nos tutoriais) instalou o zlib, zlib1g e zlib1g-dev. Eu até encontrei alguns tutoriais sobre esse problema específico (todos para outros sabores que não o meu), mas eles não ajudaram.

Estou no Ubuntu 8.10, ruby ​​versão 1.8.8dev gem versão 1.3.2

Eu tentei reinstalar ruby ​​e gemas cada e separadamente, sem sucesso.

Paulo
fonte
23
"A instalação do Ubuntu noob rails falha no zlib" Uau. É o poema mais bonito de todos os tempos.
Nosredna
3
apt-get install zlib1g zlib1g-dev trabalhou para mim no Ubuntu 10.04
bioneuralnet
este link também ajuda stackoverflow.com/questions/9727908/...
Bruce

Respostas:

297

Se você se deparar com essa pergunta tentando instalar o Ruby usando o Ruby Version Manager (RVM) no Ubuntu 10.04, existem instruções sobre a instalação do zlib no site da rvm http://rvm.beginrescueend.com/packages/zlib/

Os passos são:

rvm pkg install zlib

(ou rvm package install zlibse você receber "ERRO: Argumento de linha de comando não reconhecido: 'pkg'" - versões anteriores do rvm usavam o verbo 'package')

então

rvm remove 1.9.1
rvm install 1.9.1
JosephL
fonte
33
excelente, a mesma abordagem funcionou para mim com uma pequena variação do 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
finalizado em
1
maravilhoso, eu estava me perguntando por rvm não estava funcionando no debian mesmo com zlib instalada via apt
Martin DeMello
11
teve o mesmo problema, finalmente encontrei isso funcionou para mim:vm package install zib; rvm remove 1.9.2; rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
TimDog
Muito obrigado! Eu tenho esse mesmo problema. Eu apenas tive que substituir "1.9.1" por "ree" no Ubuntu. +1!
Kikito
1
Obrigado por incluir a pkgsegunda opção!
Justin
52

Estou usando o Ubuntu 10.04 (Lucid), queria instalar o ruby ​​1.9.2 porque o 1.9.1 não é recomendado no Rails. Então, eu baixei o código-fonte do 1.9.2 e o descompactei / desarquivei. minha distribuição de origem é ruby-1.9.2-p0. Depois de desempacotá-lo, criei o zlib da seguinte maneira:

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

isso resolveu o problema. Isso é semelhante ao que as outras pessoas postaram acima, mas não exatamente, então achei que também poderia postar exatamente o que fiz para fazê-lo funcionar.

AdrianVeidt
fonte
2
Este é o melhor recurso que encontrei. Instalei o ruby ​​da fonte sem rvm e tive um problema com o zlib. Este post ajuda muito. Obrigado!
cristian
1
Obrigado! Corrige o problema no 1.9.2-p136 / Ubuntu 10.04.1.
mgutz
Obrigado. Corrige o problema no 1.9.2-p180 / Red Hat 4.1.2-46 também.
Adelarsq
Isso funcionou para o Ubnutu 11.04 / Ruby 1.9.2-p180. Eu tentei, apt-get install zlib1g zlib1g-devmas não funcionou (é possível que zlib1g-devnão estivesse instalado antes de compilar o Ruby).
Max Masnick
Parece que você precisa disso mesmo quando instala o ruby ​​da fonte. Não sei por que ele não está instalado por padrão
nimrodm
22

Eu tenho o mesmo problema no CentOS e corrija-o executando o seguinte comando:

Primeiro, garanto que o zlib e o zlib-devel existem (como muitos sugeridos acima).

yum install zlib zlib-devel

Segundo, recompilei e instalei as fontes do zlib que acompanham o 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

Esses comandos parecem resolver o problema, então eu executo gem update --systeme o erro com zlib desapareceu. Em seguida, instalo trilhos com trilhos de instalação gem. Observe que eu havia instalado o gem antes e, após recompilar e instalar o zlib, não recompile nem instale o gem (na verdade, eu não sabia como desinstalá-lo porque não encontrei um script para fazer isso)

Isso funciona para mim ... espero que você.

Saudações.

Daniel
fonte
13

experimentar

aptitude install zlib1g-dev

Então vá sobre o seu negócio.

Dan
fonte
Eu realmente tive que fazer isso antes de ser capaz de compilar o zlib que veio com fonte ruby
Jeremy Branco
8

Eu realmente não gostei de nenhuma dessas respostas ... nenhuma realmente focada nas necessidades e perguntas reais dos usuários ... apenas pessoas dizendo o que fizeram ... sem contexto e isso nem funcionou para mim ...

Assim, ..

Estou instalando uma nova caixa Ubuntu 8.04 LTS de 64 bits ...

Então eu ...

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  

E então eu tenho esse problema com ...

gem list

ele não funciona ... algo sobre zLib não encontrou porcaria ...

Então, na verdade, LEU o README e acho que preciso editar um arquivo ...

[my ruby source directory]/ext/Setup

e descomente a linha com zLib ... removendo o "#" na primeira coluna

Então eu executo os comandos novamente ... incluídos aqui para referência ...

./configure
make  
install  
sudo make install  

e tudo está bem ... é lógico ... e é desprovido de "rvm" e outros ... "basta instalar mais coisas para fazê-lo funcionar" do tipo soluções.

Joet

Conhece
fonte
Não ajuda para mim. Eu li o readme, bem como, e seguiu-o de instruções, mas mesmo depois de eu ainda não consigo ruby gems ao trabalho, ele ainda dizer não zlib ...
Jenny
Na verdade, a resposta é relevante, pois esse é um problema comum ao usar o rvm. Sua resposta é mais adequada para pessoas que não usam rvm.
Espumadino
7

Apenas vá para o Ruby Source Package, descompacte-o.

Vá para / your-ruby-dir / ext / zlib

ruby extconf.rb
make
sudo make install

Se os pacotes estiverem ausentes, ele informará, principalmente os pacotes relacionados à libzlib

Saudações

Saurabh

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

Isso foi o que aconteceu. Após inúmeras perseguições de ganso selvagem, fico feliz por encontrar esta página.

Rod McLaughlin
fonte
1
FYI - 'pacote' foi alterado para 'pkg' em uma versão mais recente do rvm. Veja github.com/wayneeseguin/rvm/pull/345
John MacIntyre
4

sim, e isso também não funcionou. Consegui isso de outra fonte, finalmente fiz para mim onde as outras coisas falharam.

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

Reinstalar ruby ​​gems da fonte

Obrigado de qualquer maneira, pessoal.

Paulo
fonte
1
Ocorreu um problema ao executar o extconf.rb. Resolvido (provavelmente) instalando o zlib-devel.
Gregers
o mesmo aqui. Tentei de tudo e, finalmente, blue.sky.or.jp me salvou. Obrigado.
abhishek
2

O problema é que o Ruby no Ubuntu não é construído contra o zlib; você desejará criar uma origem para instalar o Ruby. Você pode fazer isso comapt-get source -b ruby

Don Werve
fonte
ok, novamente, linux noob. Não faço ideia do que você acabou de dizer. ri muito. Quero dizer, eu entendo o comando; mas o que eu faço depois disso?
Paul
bem, agora, mesmo isso não funcionou. Eu recebi um erro "Comando de compilação 'cd ruby-defaults-4.2 && dpkg-buildpackage -b -uc' falhou" erro "
Paul
2

Você tentou o apt-get install libzlib-ruby?

Instale também rubygems a partir do rubyforge. Eu não gosto do pacote rubygems no Ubuntu.

nkassis
fonte
2

No Debian (Squeeze):

O libruby contém zlib for ruby ​​entre todas as outras coisas necessárias para que o ruby ​​funcione corretamente no Debian. Assim...

apt-get install libruby

Então...

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

Isso fez com que funcionasse para mim, mas sua milhagem pode variar. Eu fiz uma ligeira abordagem de espingarda para zlib antes de descobrir que tudo o que precisava era coberto pelo libruby.

Tryst
fonte
1

Você pode tentar baixar o pacote deb ruby ​​enterprise deb no site phusion . E instale o passageiro através do pacote. Siga as instruções aqui . Ou você pode tentar o script bash encontrado aqui .

Maran
fonte
0

Ao rodar o Rails, eu não recomendaria o uso do Ruby 1.8.8dev. Fique com o 1.8.6, de preferência o Ruby Enterprise Edition. Veja esta postagem no RailsLab que outras pessoas estão usando.

Se você insistir em usar alta tecnologia, instale o Ruby 1.9.1.

Mas em ambos os casos, construa você mesmo ou use a sugestão de Marans.

prejuízo
fonte
Isso é péssimo conselho, NÃO use 1.9.1 com trilhos. 1.9.2+ funciona bem, no entanto.
Xaxxon
Esse comentário foi colocado há 2 anos ... Agora, o 1.9.3 seria o caminho a percorrer, é claro.
prejudique
claro, eu estou bem com isso. Mas é importante que alguém saiba que está errado.
Xaxxon