Кто-нибудь пытался установить ruby ​​& rubygems из исходного кода в Ubuntu (предпочтительно Ubuntu 9)? - PullRequest
3 голосов
/ 09 августа 2009

Сайт Ruby on Rails рекомендует устанавливать Ruby из исходного кода под Linux. Я столкнулся с рядом проблем библиотеки C при сборке ruby ​​из исходного кода при чистой установке Ubuntu 9.

Все инструкции по установке ruby ​​в Ubuntu, которые я нашел в сети, касались использования предварительно упакованного (на основе .deb) ruby. Очевидно, что это не то, что рекомендуют рельсы.

Когда я сделал чистую исходную сборку ruby, я обнаружил, что Rubygems не удалось установить, потому что расширение zlib не работает.

Возникают две проблемы:

1) Расширение zlib не создано.

Решение:

i) убедитесь, что zlib не закомментирован в файле установки в каталоге extn источника ruby, и

ii) убедитесь, что установлены эти пакеты zlib ubuntu:

aptitude install zlib1g
aptitude install zlib1g-dbg
aptitude install zlib1g-dev
aptitude install zlibc

2) После исправления проблемы 1 выше (и чистой перестройки ruby) zlib по-прежнему не работает, потому что расширение не загружается.

Вы можете увидеть, что модуль не загружается, запустив это и получив вывод "false":

puts require 'zlib'

Я заметил, что это происходит с любым количеством других расширений C в каталоге extn, так что это кажется более общей проблемой с этими расширениями, чем просто чем-то специфичным для zlib.

Подведем итог:

  • Моя сборка ruby ​​находит специфичное для ruby ​​расширение C zlib, но не может загрузить модуль zlib.
  • Такое поведение наблюдается и для других расширений в /extn.

Есть ли способ узнать, почему модуль не загружается? какой-то режим трассировки / многословия?

Ответы [ 3 ]

5 голосов
/ 20 августа 2011

Вот что я сделал для установки ruby, gems и rails на Ubuntu 11.04

  • Установить ruby ​​из источников

  • Установить RubyGems из источников

  • Установить zlib:
    • sudo apt-get install zlib1g-dev
    • cd your-ruby-sources / ext / zlib
    • ruby ​​extconf.rb
    • сделать
    • sudo make install
  • Установить readline:
    • sudo apt-get install libreadline5-dev
    • cd your-ruby-sources / ext / readline
    • ruby ​​extconf.rb
    • сделать
    • sudo make install
  • Установить openssl:
    • sudo apt-get install libssl-dev
    • cd your-ruby-sources / ext / openssl
    • ruby ​​extconf.rb
    • сделать
    • sudo make install
2 голосов
/ 10 августа 2009

Я не понимаю, в чем твоя проблема. Вы говорите, что require 'zlib' возвращает false. Но это значит, что он работал ! Если бы произошла ошибка, вы получите исключение LoadError.

1 голос
/ 10 августа 2009

Вы установили libzlib-ruby? Вот моя типичная инициализация Ubuntu перед установкой Rubygems:

$ apt-get update
$ apt-get dist-upgrade
$ apt-get install build-essential -y
$ apt-get install rsync -y
$ apt-get install ruby ri rdoc irb ri1.8 ruby1.8-dev libzlib-ruby zlib1g libopenssl-ruby -y
...