Установка Ruby on Rails в Ubuntu (для разработки)
Я постараюсь поддерживать эту статью в актуальном состоянии. На данный момент, все действия, описанные в статье, актуальны для следующих версий ПО:
- Ubuntu Karmic Koala (9.10)
- Ruby 1.8.7 (2009-06-12 patchlevel 174)
- Rubygems 1.3.5
- Ruby on Rails 2.3.4
Установка Ruby
В репозиториях Убунту лежит актуальная версия интерпретатора Ruby, поэтому для установки Ruby хватит одной стандартной команды:
sudo apt-get install ruby-full build-essential libruby-extras libsqlite3-ruby
Установка Rubygems
- RubyGems в репозитории Ubuntu Karmic пока актуальные, поэтому можно смело ставить из репозитория командой:
sudo apt-get install rubygems - Однако, если вы предпочитаете ручную установку RubyGems, воспользуйтесь следующими командами:
wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz tar xzvf rubygems-1.3.5.tgz cd rubygems-1.3.5 sudo ruby setup.rb sudo ln -s /usr/bin/gem1.8 /usr/bin/gemДля того, чтобы у вас заработало дополнение команд в консоли, необходимо открыть файл настроек дополнения
sudo gedit /etc/bash_completion.d/gem1.8И вставить в начало этого файла, сразу после комментариев, следующий код:
have() { unset -v have PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type $1 &>/dev/null && have="yes" }А в самый конец вставить:
[ -n "${have:-}" ] && complete -F _gem18 $filenames gemТеперь вы в консоли сможете набирать
gem iи консоль будет сама дополнять команду доgem install,Если же у вас уже была установлена более старая версия Rubygems, вы можете обновить её до текущей:
sudo gem update --systemИногда, после обновления этой командой, gem может начать выдавать ошибку:
/usr/bin/gem:23: uninitialized constant Gem::GemRunner (NameError)Для её устранения, необходимо отредактировать исполняемый файл (
sudo gedit /usr/bin/gem) и перед строкойrequire "rubygems"вставить строкуrequire "rubygems/gem_runner"
Установка Rails
Теперь, когда нас установлены актуальные версии интерпретатора и менеджера гемов, мы можем присутпить к установке самих Rails.
sudo gem install rails
Всё, рельсы установлены. Чтобы проверить, что всё в порядке, создадим приложение на рельсах:
cd ~
mkdir Sites
cd Sites
rails my_first_site
cd my_first_site
./script/server
Эти команды создадут в вашей домашней директории поддиректории Sites, а в ней, в директории my_first_site rails-приложение, после чего запустит стандартный сервер WEBrick, поставляемый вместе с интерпретатором Ruby. Если установка прошла без ошибок, то вы сможете увидеть приветствие рельсов, пройдя по ссылке http://127.0.0.1:3000/.
Установка дополнительных гемов
В дальнейшем, при работе с рельсами, вам может понадобиться множество различных гемов. Описывать установку всех я не буду. Опишу лишь то, с чем у меня когда-либо случались проблемы. Начнём, пожалуй, с гема rmagick, предназначенного для обработки изображений.
Если для вас не обязательно наличие самой последней версии этого гема, вы можете ограничиться командой
sudo apt-get install librmagick-ruby
Если же вы захотите установить самую последнюю версию этого гема, вам нужно будет скачать исходные коды для библиотек ImageMagick (а они потянут за собой много-много других библиотек). Скорее всего, для вас это излишне. Но команды напишу:
sudo apt-get install libmagick9-dev
sudo gem install rmagick
Ещё лично я советую поставить вам несколько плагинов, которые облегчат вам жизнь при работе с Rails вдальнейшем. Установка одной командой:
sudo gem install mongrel BlueCloth RedCloth sqlite3-ruby ZenTest
И о каждом геме поподробнее:
- mongrel — более быстрый, чем WEBrick сервер, написанный специально для работы с Rails. Если н установлен, то по команде ./script/server рельсы станут запускать именно его.
- BlueCloth и RedCloth — библиотеки, используемые рельсовыми хелперами
markdownиtextilizeсоответственно для разметки текста. - sqlite3-ruby — библиотека для работы с базами sqlite3 (которые создаются по-умолчанию при создании рельсового приложения).
- ZenTest — набор утилит для автоматического тестирования приложения. По команде
autotestзапускается тестирующий демон, который будет проверять все изменённые файлы, пробегая связанные с ними тесты. Об этой утилите я напишу позже
Теги: Ruby, Ruby on Rails, RubyGems
Комментарии (30) на “Установка Ruby on Rails в Ubuntu (для разработки)”
Оставить комментарий
Вы должны авторизоваться для отправки комментария.
04.10.2008 в 18:47
Спасибо!
Поставил :-) Толково, по делу и ничего лишнего!
21.11.2008 в 04:24
Спасибо!
Отличный мануал =)
21.11.2008 в 04:28
Всегда пожалуйста!
Будут вопросы – обращайтесь (-:
10.12.2008 в 05:19
Спасибо, очень кстати, рельсы со старыми gem'ами не хотели работать. Опубликовал ссылку на статью в своем блоге.
11.12.2008 в 12:05
Вот на чём остановился, не подскажите в чём дело?
root@alexey-laptop:/usr/bin# gem install mongrel BlueCloth RedCloth sqlite3-ruby ZenTest
Building native extensions. This could take a while…
Building native extensions. This could take a while…
Successfully installed gem_plugin-0.2.3
Successfully installed daemons-1.0.10
Successfully installed fastthread-1.0.1
Successfully installed cgi_multipart_eof_fix-2.5.0
Successfully installed mongrel-1.1.5
Successfully installed BlueCloth-1.0.0
Building native extensions. This could take a while…
Successfully installed RedCloth-4.1.1
Building native extensions. This could take a while…
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb install mongrel BlueCloth RedCloth sqlite3-ruby ZenTest
checking for fdatasync() in -lrt… yes
checking for sqlite3.h… no
make
make: *** Нет правила для сборки цели `ruby.h', требуемой для `sqlite3_api_wrap.o'. Останов.
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out
ERROR: While executing gem … (Gem::RemoteFetcher::FetchError)
bad response Internal Server Error 500 (http://rubyforge.iasi.roedu.net/gems/ZenTest-3.11...
11.12.2008 в 12:13
Версия убунты 8.10, тестовая страничка http://127.0.0.1:3000/.открылась
11.12.2008 в 12:22
Попробуйте
sudo apt-get install libsqlite3-dev
Эта команда установит необходимый заголовчный файл sqlite3.h
После этого, по-идее, гем установится.
Либо, в 8.10 можно установить пакет libsqlite3-ruby, после чего тоже всё должно заработать.
12.12.2008 в 05:15
Спасибо, установилось.
17.12.2008 в 03:51
После распоковки rubygems нужно еще сделать
find . -name "._*" -print | xargs rm
Там все засрано какими-то автобэкапами макосёвыми.
17.12.2008 в 11:03
Dankon por gxustigo! Mi korektos gxi (-:
17.12.2008 в 11:06
Preta!
18.12.2008 в 01:34
Hehe! Vi estas Esperantisto :)
Nedankinde.
05.05.2009 в 19:53
мне лично больше нравиться вот такой вариант обновления гемов:
сначала через aptitude ставим rubygems v1.3.1
потом:
sudo gem install rubygems_update
sudo ln /var/lib/gems/1.8/bin/rubygems_update /usr/bin/rubygems_update
sudo rubygems_update
07.05.2009 в 12:42
это я к тому, чтобы из исходников не ставить
07.10.2009 в 06:59
Вроде бы он всё поставил, но в конце пишет странные вещи :
No definition for _wrap_new_CallbackData
No definition for _wrap_CallbackData_proc_set
No definition for _wrap_CallbackData_proc_get
No definition for _wrap_CallbackData_proc2_set
No definition for _wrap_CallbackData_proc2_get
…
и так еще десяток строк про отсутствующие определения.
Это нормально?
07.10.2009 в 07:00
Ставлю на убунту 9.04
07.10.2009 в 14:40
А кто и где это вам показывает? А то у меня libastral сломался.
07.10.2009 в 18:13
Показывает он это, когда я выполняю команду
sudo gem install sqlite3-ruby
07.10.2009 в 18:35
Ничего страшного, значит. Сборщик пакета чего-то там недоделал. Работать всё должно нормально.
08.10.2009 в 13:11
про сервер напишитееее..
09.10.2009 в 22:36
Чтобы писать короче:
gem install …иgem list …вместо
gem1.8 install …иgem1.8 list …09.10.2009 в 21:47
Спасибо!
А зачем нужно было символическую ссылку создавать на /usr/bin/gem1.8? Для того, чтобы обновление проходило нормально?
11.10.2009 в 20:33
Все поставил.
В Netbeans (использую Ruby – не JRuby) при вызове контроллера в браузере вылетает ошибка: !!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. А в браузере выходит сообщение:
We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.
В чем может быть дело? Все перерыл.
OS – UBUNTU 9.04, IDE – NetBeans, Ruby 1.8.7
11.10.2009 в 21:12
Вы никогда не пробовали следовать рекомендациям, которые дают вам приложения?
Netbeans, ведь, явно говорит вам: «Please install the mysql gem and try again»
Воспользуйтесь его советом и выполните в терминале:
sudo gem install mysql
Возможно, эта команда ругнётся из-за отсутствия хедеров для Mysql, тогда выполните:
sudo apt-get install libmysqlclient-dev
и повторите установку гема.
30.10.2009 в 18:49
спасибо огромедное просто молодец
31.10.2009 в 21:50
Если первым способом устанавливать rubygems, то в каталоге /usr/bin/ не будет файла rails, придётся ставить символическую ссылку. Так что второй способ предпочтительней.
10.11.2009 в 19:19
Привет, а не было ли проблемы с ZenTest на Ubuntu 9.10. У меня после установки ZenTest 4.1.4 недоступна команда autotest.
10.11.2009 в 20:33
Проблема скорее в остутствии необходимых gem’ ов, чем в обновлении Ubuntu.
Попробуйте: sudo gem install autotest-rails
10.11.2009 в 21:15
Не помогло. Попробую найти причину, и при положительном результате поделюсь опытом.
11.11.2009 в 05:36
Ах да, ещё дело может быть в том, что вы RubyGems поставили из пакета, а не из исходников. Тогда бинарники из гемов просто не попадают в PATH. Нужно или исправить PATH, чтобы он включал папку с бинарниками гемов (что-то вроде /var/ruby/gems/1.8/bin, поищите точное название), либо ставить RubyGems из исходников, тогда такой проблемы не наблюдается.