2010-11-20 2 views
5

Я новичок в Ruby и RoR. У меня есть чистый экземпляр Linode с изображением Ubuntu, и я хочу скомпилировать Ruby из исходного кода вместо использования apt-get. У меня есть инструкции для этого, но после некоторых попыток я продолжаю получать ошибки в отношении отсутствующих zlib и некоторых других пакетов, когда я пытаюсь запустить некоторые образцы обучающих программ.Необходимые условия для компиляции Ruby 1.9.2 на Linux?

Может кто-нибудь, пожалуйста, дайте мне подробные инструкции (или ссылку), которые научат меня, как установить необходимые необходимые компоненты, прежде чем компилировать Ruby из исходного кода?

Мое намерение состоит в том, чтобы скомпилировать последний стабильный выпуск Ruby, а затем установить Rubygems и Rails. Спасибо за любую помощь заранее!!!

+0

Компиляция из источника должна использоваться только в том случае, если требуемые пакеты недоступны в репозиториях. – EmFi

ответ

3

I ВЫСОКО рекомендуется использовать 'RVM' для установки всех ваших рубинов, особенно если вы делаете это только для собственного использования. RVM сделает всю компиляцию для вас, помещает все в ~/.rvm, включая драгоценные камни, и упрощает установку нескольких версий Ruby и драгоценных камней для тестирования.

Installation и using gems помогут вам работать. RVM's Gemsets являются мощными, а команда ruby RVM делает его приятным для выполнения некоторых действий во всех установленных рубинах RVM.

RVM также поддерживает system-wide installations, предлагая гибкость RVM, если вам это нужно, но это немного сложнее и не нужно, если вы работаете на однопользовательской машине.

+0

довольно сложно установить, но очень полезно, мне понравилось! благодаря ! –

0

Почему бы не установить zlib? sudo aptitude install libz-dev

Я скомпилирован из источника, и довольно хорошо предупреждать вас, когда вам не хватает зависимости.

18

This blog post покрывает необходимые пакеты и устанавливает процесс компиляции рубина из источника; он ссылается на Ruby 1.9.1, но он должен отлично работать с Ruby 1.9.2. Реальный полезный бит от этого поста:

sudo apt-get -y install libc6-dev libssl-dev libmysql++-dev libsqlite3-dev make build-essential libssl-dev libreadline6-dev zlib1g-dev libyaml-dev 

Похоже мне, что некоторые из них не имеют существенного значения, если вы не хотите, чтобы перейти на использование MySQL или SQLite, но в противном случае этот список пакетов будет получить то, что вам нужно скомпилировать Ruby.

После этого я бы не рекомендовал вручную устанавливать Ruby из исходного кода; Я бы использовал RVM (Ruby Version Manager), поэтому вы можете установить любую версию Ruby, которую вы хотите, сейчас и позже. RVM компилирует различные версии Ruby, загружая и компилируя исходный код, а также будет устанавливать Rubygems для вас.

Как только вы установили rvm, вы можете использовать rvm requirements, чтобы получить текущий список необходимых пакетов.

+1

+1: для RVM и предупреждения о компиляции из источника. – EmFi

+0

Возможно, вам захочется также libyaml-dev, или Ruby будет скомпилирован без поддержки YAML. –

+0

К сожалению, сообщение в блоге ушло ... –

8

Вы можете использовать apt-get для установки всех зависимостей сборки для любого пакета. Включите исходный репозиторий, а затем запустите.

sudo apt-get build-dep ruby1.9 rails 

Это установит все пакеты, необходимые для компиляции источника для этих двух пакетов. Затем вы можете получить последний источник и следовать инструкциям.

N.B .: Имена упаковок могут быть неправильными, зависит от того, какую версию Ubuntu вы используете.

+2

Установка Ruby из пакета в порядке, но я бы не рекомендовал устанавливать Rails из пакета. Для рубинов системы я рекомендую вручную установить Rubygems (инструкции на rubygems.org - http://rubygems.org/pages/download), а затем 'gem install rails'. – wuputah

+0

К сожалению, я видел пакеты, которые не включают irb и rdebug, которые я считаю необходимыми для работы с Ruby. В результате я только устанавливаю с использованием источника сейчас, а так как RVM появился, я использую его в качестве своего первого выбора. Пакеты стали моим последним средством. –

+4

Я только предложил пакеты как ярлык для установки всех зависимостей построения. – EmFi

Смежные вопросы