Ошибка установки рельсов Ubuntu на zlib

128

Я только что перешел на Ubuntu 8.10 в качестве своего модуля разработчика; это мой первый серьезный набег на Linux как на операционную систему повседневного использования, и мне трудно запустить Rails. Я следил за рядом руководств, которые, похоже, работают нормально, но когда я пытаюсь использовать установку или обновление гемов для чего-либо, я получаю сообщение об ошибке, которое выглядит следующим образом:

/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

Я установил (как рекомендовано в руководствах) zlib, zlib1g и zlib1g-dev. Я даже нашел несколько руководств по этой конкретной проблеме (правда, все для других ароматов), но они не помогли.

Я использую Ubuntu 8.10, ruby ​​версии 1.8.8dev gem версии 1.3.2

Я пытался переустановить рубин и драгоценные камни по отдельности, но безрезультатно.

Павел
источник
23
«Ошибка установки Ubuntu noob rails на zlib» Вау. Это похоже на самое красивое стихотворение на свете.
Nosredna 06
3
apt-get install zlib1g zlib1g-dev работал у меня на Ubuntu 10.04
bioneuralnet
См. Также stackoverflow.com/questions/2441248/rvm-ruby-1-9-1-troubles
Джеймс МакМахон,
эта ссылка также помогает stackoverflow.com/questions/9727908/…
Брюс

Ответы:

297

Если вы столкнулись с этим вопросом, пытаясь установить Ruby с помощью Ruby Version Manager (RVM) в Ubuntu 10.04, то на веб-сайте rvm http://rvm.beginrescueend.com/packages/zlib/ есть инструкции по установке zlib.

Шаги следующие:

rvm pkg install zlib

(или rvm package install zlibесли вы получили сообщение «ОШИБКА: Нераспознанный аргумент командной строки: 'pkg'» - вместо этого в более старых версиях rvm использовалась команда 'package')

затем

rvm remove 1.9.1
rvm install 1.9.1
JosephL
источник
33
отлично, тот же подход сработал для меня с небольшим изменением для 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
tardate
1
замечательно, мне было интересно, почему rvm не работает на debian даже с zlib, установленным через apt
Мартин ДеМелло
11
была та же проблема, наконец обнаружил, что это сработало для меня:vm package install zib; rvm remove 1.9.2; rvm install 1.9.2 --with-zlib-dir=$rvm_path/usr
TimDog
Большое спасибо! У меня была такая же проблема. Мне просто пришлось заменить «1.9.1» на «ree» в Ubuntu. +1!
kikito
1
Спасибо, что pkgвключили второй вариант!
Джастин
52

Я использую Ubuntu 10.04 (Lucid), я хотел установить ruby ​​1.9.2, потому что 1.9.1 не рекомендуется с Rails. Итак, я скачал исходный код 1.9.2 и разархивировал / разархивировал его. мой исходный дистрибутив - ruby-1.9.2-p0. После распаковки я собрал zlib следующим образом:

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

это устранило проблему. Это похоже на то, что другие люди писали выше, но не совсем, поэтому я подумал, что могу опубликовать именно то, что я сделал, чтобы это заработало.

AdrianVeidt
источник
2
Это лучший ресурс, который я нашел. Я установил Ruby из исходного кода без rvm, и возникла проблема с zlib. Этот пост очень помог. Спасибо!
cristian
1
Спасибо! Устраняет проблему в 1.9.2-p136 / Ubuntu 10.04.1.
mgutz
Спасибо. Устраняет проблему также на 1.9.2-p180 / Red Hat 4.1.2-46.
adelarsq
Это сработало для Ubnutu 11.04 / Ruby 1.9.2-p180. Я пробовал, apt-get install zlib1g zlib1g-devно это не сработало (возможно, zlib1g-devон не был установлен до компиляции Ruby).
Макс Масник 08
Похоже, вам это нужно, даже если вы устанавливаете Ruby из исходников. Не уверен, почему он не установлен по умолчанию
nimrodm
22

У меня такая же проблема в CentOS, и я исправлю ее, выполнив следующую команду:

Во-первых, я удостоверяюсь, что zlib и zlib-devel существуют (как многие из предложенных выше).

yum install zlib zlib-devel

Во-вторых, я перекомпилировал и установил исходные коды zlib, поставляемого с 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

Кажется, что эти команды решают проблему, затем я выполняю, gem update --systemи ошибка с zlib исчезла. Затем я устанавливаю рельсы с рельсами для установки драгоценных камней. Обратите внимание, что я уже устанавливал гем раньше, а после перекомпиляции и установки zlib я не перекомпилирую ни один гем install (на самом деле я не знал, как его удалить, потому что я не нашел для этого скрипта)

Это работает для меня ... надеюсь, что вы это сделаете.

С уважением.

Даниил
источник
13

пытаться

aptitude install zlib1g-dev

Тогда займись своими делами.

Дэн
источник
на самом деле мне пришлось сделать это, прежде чем я смог скомпилировать zlib, который пришел с исходным кодом ruby
Джереми Уайт
8

Мне действительно не понравился ни один из этих ответов ... ни один из них не был сосредоточен на реальных потребностях и вопросах пользователей ... просто люди рассказывали, что они сделали ... нет контекста, и это даже не сработало для меня ...

Так, ..

Устанавливаю новую коробку Ubuntu 8.04 LTS 64-bit ...

Так что я ...

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  

А потом у меня проблема с ...

gem list

не работает ... что-то про zLib не нашел лажа ...

Итак, я действительно ЧИТАЮ README и обнаружил, что мне нужно отредактировать файл ...

[my ruby source directory]/ext/Setup

и ОТКАЗАТЬ ОТ КОММЕНТАРИИ к строке с zLib ... удалив "#" в первом столбце

Затем я снова запускаю команды ... приведенные здесь для справки ...

./configure
make  
install  
sudo make install  

и все хорошо ... это логично ... и лишено "rvm" и других ... решений типа "просто установи больше, чтобы все заработало".

Joet

Knowself
источник
Мне не помогает. Я также прочитала ридми и выполнила его инструкции, но даже после того, как я все еще не могу заставить рубиновые драгоценные камни работать, он все еще говорит «нет злиб» ...
Дженни
На самом деле ответ актуален, так как это частая проблема при использовании rvm. Ваш ответ больше подходит для людей, которые не используют rvm.
пенодино
7

Просто перейдите к пакету исходного кода Ruby, разархивируйте его.

Перейти к / ваш-рубин-каталог / ext / zlib

ruby extconf.rb
make
sudo make install

Если пакеты отсутствуют, он сообщит вам, в основном это пакеты, связанные с libzlib

С уважением

Саурабх

Саурабх
источник
6
rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1

Это сделало это. После многочисленных погонь за дикими гусями я рад, что нашел эту страницу.

Род Маклафлин
источник
1
К вашему сведению - «пакет» был изменен на «pkg» в более поздней версии rvm. См. Github.com/wayneeseguin/rvm/pull/345
Джон Макинтайр,
4

да, и это тоже не помогло. Получил это из другого источника, это наконец помогло мне там, где другие вещи не сработали.

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

Переустановите рубиновые драгоценные камни из исходного кода

В любом случае спасибо, ребята.

Павел
источник
1
У меня возникла проблема с запуском extconf.rb. Решил (наверное) установкой zlib-devel.
gregers
тоже самое. Пробовал все остальное, и наконец меня спас blue.sky.or.jp. Спасибо.
abhishek
2

Проблема в том, что Ruby на Ubuntu не построен на zlib; вы захотите сделать исходную сборку для установки Ruby. Вы можете сделать это с помощьюapt-get source -b ruby

Дон Верве
источник
хорошо, снова Linux noob. Понятия не имею, что вы только что сказали. ржунимагу. То есть я понимаю команду; но что мне делать после этого?
Пол
ну, теперь даже это не сработало. У меня возникла ошибка "Команда сборки" cd ruby-defaults-4.2 && dpkg-buildpackage -b -uc 'failed "
Пол
2

Вы пробовали apt-get install libzlib-ruby?

Также установите rubygems из rubyforge. Мне не нравится пакет rubygems в Ubuntu.

nkassis
источник
2

В Debian (сжатие):

libruby содержит zlib для ruby ​​среди всего прочего, что вам нужно для правильной работы ruby ​​в Debian. Так...

apt-get install libruby

Затем...

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

Это помогло мне, но ваш опыт может отличаться. Я применил небольшой подход к zlib, прежде чем обнаружил, что все необходимое было покрыто libruby.

назначенная встреча
источник
1

Вы можете попробовать загрузить пакет ruby ​​enterprise deb на сайте phusion . И установить пассажирский через пакет. Следуйте инструкциям здесь . Или вы можете попробовать найденный здесь bash-скрипт .

Маран
источник
0

При запуске Rails я бы не рекомендовал использовать Ruby 1.8.8dev. Придерживайтесь версии 1.8.6, желательно Ruby Enterprise Edition. См. Этот пост в RailsLab, что используют другие люди.

Если вы настаиваете на высоких технологиях, установите Ruby 1.9.1.

Но в обоих случаях создайте его самостоятельно или воспользуйтесь предложением Маранса.

вред
источник
Это плохой совет, НЕ используйте 1.9.1 с рельсами. Однако 1.9.2+ работает нормально.
xaxxon
Этот комментарий был размещен 2 года назад ... Теперь 1.9.3, конечно, будет подходящим вариантом.
вред
конечно, меня это устраивает. Но кому-то важно знать, что это неправильно.
xaxxon