Опубликован: 27.01.2016 | Уровень: для всех | Доступ: платный
Лекция 1:

От нуля к развертыванию

Лекция 1: 123456789 || Лекция 2 >

За работу

Глава 1 представляется мне "фазой отсева" в юридической школе — если вы сможете поднять свою среду разработки, значит все остальное вам по плечу.

Bob Cavezza, читатель Rails Tutorial

Пришло время, чтобы взяться за дело со средой разработки Ruby on Rails и нашим первым приложением. Здесь будет немного лишних действий, особенно если у вас нет большого опыта программирования, так что не разочаровывайтесь, если вам понадобится потратить какое-то время прежде чем вы сможете начать работу. Это не только вы; каждый разработчик проходит через это (часто не раз), но будьте уверены, что эти усилия будут щедро вознаграждены.

Среда разработки

Принимая во внимание различные своеобразные настройки и предпочтения, вероятно, существует столько вариантов сред разработки, сколько и Rails программистов, но есть, по крайней мере, две общие темы: текстовый редактор/командная строка и интегрированная среда разработки (IDE). Рассмотрим последнюю первой.

Интегрированные Среды Разработки

Наиболее известные IDE для Rails: RadRails и RubyMine. Я слышал особенно хорошие вещи о RubyMine и один читатель (David Loeffler) собрал7https://github.com/perfectionist/sample_project/wiki заметки о том как использовать RubyMine с этим учебником. Если вам комфортно работать в IDE, я советую взглянуть на упомянутые варианты для того чтобы проверить подходят ли они вам.

Текстовые редакторы и инструменты командной строки

Вместо IDE я предпочитаю использовать текстовый редактор для редактирования текста и командную строку для выполнения команд (Рис. 1.1). Их комбинация зависит от ваших предпочтений и платформы.

  • Текстовый редактор: я рекомендую Sublime Text, выдающийся кросплатформенный текстовый редактор, мощный и в то же время легкий в изучении инструмент.8На момент написания, Sublime Text 3 находится в стадии разработки. Я рекомендую пробовать эту версию только если вам ну очень хочется быть на острие прогресса Sublime Text находится под сильным влиянием TextMate, и фактически совместим с большинством TextMate плагинов, такими как сниппеты и цветовые схемы. (TextMate, который доступен только для OS X, по прежнему является достойным решением если вы используете Mac.) Второй замечательный редактор это Vim,9Редактор vi - одно из самых древних, но все же мощных орудий в арсенале Unix, и Vim - сокращение для "vi improved" ("улучшенный vi"). версии которого доступны для большинства платформ. Sublime Text это платный продукт, в то время как Vim бесплатен и имеет открытый исходный код; оба они являются весьма мощными редакторами, но Sublime Text намного более дружелюбен к новичкам.
  • Терминал: на OS X, я рекомендую использовать iTerm или нативное приложение Terminal. На Linux вполне подойдет дефолтный терминал. На Windows, многие пользователи предпочитают разрабатывать Rails приложения из-под виртуальной машины на которой запущен Linux, в этом случае ваши возможности совпадают с предыдущим случаем. Если же вы разрабатываете на самой Windows, я рекомендую использовать терминал поставляемый с Rails Installer (Раздел 1.2.2.1).

Если вы решите использовать Sublime Text, вам, возможно, пригодятся инструкции по его настройке из раздела Rails Tutorial Sublime Text10https://github.com/mhartl/rails_tutorial_sublime_text. (Подобного рода конфигурирование является довольно кропотливым и непростым занятием, так что я бы рекомендовал этот шаг только довольно продвинутым пользователям; Sublime Text это превосходное решение для редактирования Rails приложений даже без дополнительных настроек.)

Среда разработки текстовый редактор/терминал

Рис. 1.1. Среда разработки текстовый редактор/терминал

Браузеры

Хотя среди веб-браузеров есть из чего выбрать, подавляющее большинство программистов Rails используют Firefox, Safari, или Chrome, при разработке. У всех перечисленных браузеров есть встроенная "Просмотр кода элемента" функция, доступная по щелчку правой кнопкой мыши (либо Ctrl-клик) на любой части страницы.

Примечание об инструментах

В процессе становления и запуска вашей среды разработки, вы можете обнаружить, что вы тратите много времени на приобретение правильных навыков работы. Процесс изучения редакторов и IDE особенно длинен; можно потратить недели на Sublime Text или одни только учебные руководства Vim. Если вы новичек в этой игре, то я хочу уверить вас, что тратить время на изучение инструментов - это нормально. Все проходят через это. Иногда это печалит, и раздражает, особенно когда у вас в голове есть потрясающее веб-приложение, и вы просто хотите выучить Rails, но вместо этого тратите неделю на изучение какого-то странного древнего Unix редактора. Но мастер должен знать свои инструменты; в итоге усилия будут вознаграждены.

Ruby, RubyGems, Rails, и Git

Практически все программное обеспечение в мире или плохо работает или очень сложно в использовании. И пользователи боятся софта. Они хорошо усвоили, что когда они пытаются установить что-либо или даже просто заполнить онлайн-форму - все идет не так как надо. Я - Кандидат компьтерных наук боюсь установки всяких штуковин.

Пол Грэм, Founders at Work Jessica Livingston

Теперь пора установить Ruby и Rails. Я сделал все возможное чтобы максимально раскрыть эту тему, но все системы разные и множество вещей могут пойти не так в процессе установки. Ищите в Google сообщения об ошибках или читайте страницу помощи Rails Tutorial при возникновении трудностей. Кроме того, недавно появился ресурс Install Rails от One Month Rails который может помочь вам если вы застряли.

Если иное не указано, необходимо использовать точно те же версии ПО, что и в учебнике, включая сами Rails, если вы хотите получить те же результаты. Иногда незначительные различия в версиях дают одинаковые результаты, но вам не стоит на это рассчитывать, особенно это касается версий Rails. Единственное исключение в этом отношении, это сам Ruby: 1.9.3 и 2.0.0 практически идентичны в рамках данного учебника, так что вы можете использовать любой из них.

Rails Installer (Windows)

Установка Rails на Windows применялась раньше как орудие пыток, но благодаря усилиям хороших людей в Engine Yard — особенно Dr. Nic Williams и Wayne E. Seguin — установка Rails и связанного программного обеспечения на Windows, теперь невероятно легка. Если вы используете Windows, перейдите на Rails Installer и загрузите исполняемый файл Rails Installer и посмотрите замечательное видео описывающее процесс установки. Дважды кликните исполняемый файл и следуйте инструкциям, чтобы установить Git (таким образом, можете пропустить Раздел 1.2.2.2), Ruby (пропустите Раздел 1.2.2.3), RubyGems (пропустите Раздел 1.2.2.4), и сами Rails (пропустите Раздел 1.2.2.5). После завершения установки можете сразу перейти к созданию первого приложения в Разделе 1.2.3.

Имейте в виду, что Rails Installer может иметь версию Rails, немноzго отличающуюся от той что устанавливается в Разделе 1.2.2.5, что может привести к несовместимостям. Для исправления этой ситуации я в настоящий момент работаю с Nic и Wayne над созданием списка Rails Installer-ов упорядоченных по номеру версии Rails.

Установка Git

Большая часть экосистемы Rails так или иначе зависит от системы управления версиями называемой Git (освещаемой более подробно в Разделе 1.3). Поскольку его использование является повсеместным, следует установить Git даже на этой ранней стадии; я предлагаю следовать инструкциям по установке для вашей платформы в разделе Установка Git (Pro Git).

Установка Ruby

Следующий шаг это установка Ruby. (Это может быть довольно болезненной процедурой и я на самом деле боюсь установки новых версий Ruby, но, к сожалению, это неизбежно.)

Возможно, он уже есть в вашей системе; попытайтесь выполнить

$ ruby -v

чтобы увидеть номер версии. Rails 4 требует Ruby 1.9 или выше и на большинстве систем лучше всего работает с Ruby 2.0. (В частности, вообще не будет работать с Ruby 1.8.7) Этот учебник предполагает что большая часть читателей будет использовать Ruby 1.9.3 или 2.0.0, но Ruby 1.9.2 также должен работать нормально. Примечание: Мне приходили сообщения от Windows пользователей о том что Ruby 2.0 нестабильно работает на этой OS, так что я рекомендую использовать Ruby 1.9.3 если вы разрабатываете из-под Windows.

Как часть установки Ruby, если вы используете OS X или Linux я настоятельно рекомендую использовать Ruby Version Manager (RVM) или rbenv, которые позволят вам устанавливать и управлять различными версиями Ruby на одной машине. (Проект Pik совершает подобный подвиг для Windows.) Это особенно важно, если вы хотите запускать различные версии Ruby или Rails на одной машине. К сожалению, RVM и rbenv не могут использоваться на одной системе одновременно и, поскольку я уже давно работаю с RVM и лучше его знаю, именно с ним мы будем иметь дело в этом учебнике. Однако я слышал много хорошего о rbenv, так что если вы с ним уже знакомы, или знаете того кто может вам с ним помочь - все в ваших руках.

Пользователям OS X возможно придется предварительно установить инструменты разработчика Xcode. Для того чтобы избежать полной установки этой громадины, я рекомендую установить намного меньшие по размеру Command Line Tools for Xcode.11https://developer.apple.com/downloads/

Для того чтобы начать установку Ruby, вначале установите RVM:

$ curl -L https://get.rvm.io | bash -s

(Если RVM у вас уже установлен, вам следует запустить

$ rvm get stable

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

После чего вы можете получить перечень необходимого ПО для установки Ruby на вашей системе:

$ rvm requirements

На моей системе мне пришлось установить следующее (с помощью Homebrew - менеджера пакетов для OS X):

$ brew install libtool libxslt libksba openssl

На Linux для устаноки пакетов вы можете использовать apt-get или yum.

Также мне пришлось установить библиотеку YAML:

# Для Mac с Homebrew
$ brew install libyaml

# Для Linux дистрибутивов основанных на Debian
$ apt-get install libyaml-dev

# Для Linux дистрибутивов основанных на Fedora/CentOS/RHEL
$ yum install libyaml-devel

Наконец, при установке Ruby 2.0.0 я должен был сказать RVM о расположении OpenSSL:

$ rvm install 2.0.0 --with-openssl-dir=$HOME/.rvm/usr
<подождите немного>

На некоторых системах, особенно на Маках использующих Homebrew, расположение OpenSSL может отличаться и вам вместо той что выше придется выполнить команду:

$ rvm install 2.0.0 --with-openssl-dir=$HOME/.rvm/opt/openssl
<подождите немного>

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

После установки Ruby, вам следует сконфигурировать вашу систему для использования остального ПО необходимого для запуска Rails приложений. Обычно это подразумевает установку гемов, которые являются пакетами Ruby кода. Поскольку гемы с различными номерами версий иногда конфликтуют, обычно удобно создавать отдельные гемсеты, которые являются упаковкой для определенного набора гемов. Для целей этого учебника я рекомендую создать гемсет с названием railstutorial_rails_4_0:

$ rvm use 2.0.0@railstutorial_rails_4_0 --create --default
Using /Users/mhartl/.rvm/gems/ruby-2.0.0-p0 with gemset railstutorial_rails_4_0

Эта команда создает (--create) гемсет railstutorial_rails_4_0 связанный с Ruby 2.0.0 который в свою очередь начинает использоваться незамедлительно (use) и устанавливается дефолтным для вашей системы (--default) гемсет, так что теперь, при каждом открытии нового окна терминала, 2.0.0@railstutorial_rails_4_0 Ruby/гемсет комбинация будет выбрана автоматически. RVM поддерживает огромное количество команд для управления гемсетами; см. документацию на http://rvm.beginrescueend.com/gemsets/. Если вы когда-нибудь застрянете с RVM, запуск команд вроде этих может вам помочь:

$ rvm help
$ rvm gemset help

Для того чтобы больше узнать о RVM, я также рекомендую взглянуть на статью Ruby Version Manager (RVM) Overview for Rails Newbs.12http://strandcode.com/2013/07/11/ruby-version-manager-rvm-overview-for-rails-newbs/

Установка RubyGems

RubyGems это диспетчер пакетов для проектов Ruby, и есть тонны замечательных библиотек (включая Rails) доступных в виде Ruby-пакетов, или гемов. Установка RubyGems должна быть легкой, раз уж вы установили Ruby. Фактически, если вы установили RVM, у вас уже есть RubyGems, так как RVM включает его автоматически:

$ which gem
/Users/mhartl/.rvm/rubies/ruby-2.0.0-p0/bin/gem

Если у вас еще нет его, вам следует загрузить RubyGems, извлечь его, а затем перейти в rubygems каталог и запустить программу установки:

$ ruby setup.rb

(Если вы получили permissions error, вспомните из Раздела 1.1.3 что вам, возможно, следует использовать sudo.)

Если вы уже устанавливали RubyGems, вам следует убедиться что ваша система использует ту же версию что и в этом учебнике:

$ gem update --system 2.1.9

Заморозка вашей системы на этой конкретной версии поможет избежать конфликтов если RubyGems изменится в будущем.

При установке гемов, RubyGems по умолчанию загружает два различных вида документации (так называемые ri и rdoc), но многие Ruby и Rails разработчики считают, что время, затрачиваимое на их установку не стоит той пользы что они приносят. (Многие программисты полагаются на онлайн-документацию, а не на нативные ri и rdoc.) Для предотвращения автоматической загрузки документации, я рекомендую создать конфигурационный файл называемый .gemrc в вашей домашней директории, как это показано в Листинге 1.1 со строкой из Листинга 1.2. (Тильда "~" означает "домашняя директория", тогда как точка . в .gemrc делает файл скрытым, что является общепринятой конвенцией для конфигурационных файлов.)

$ subl ~/.gemrc
Листинг 1.1. Создание конфигурационного файла. Замените subl на ваш любимый редактор.

Здесь subl это команда командной строки для вызова Sublime Text на OS X, которую вы можете настроить с помощью Sublime Text 2 documentation for the OS X command line. Если у вас другая платформа или если вы используете другой редактор, вам следует заменить эту команду на необходимую (т.e., дважды кликая иконку приложения или используя альтернативную команду вроде mate, vim, gvim или mvim). Для краткости на протяжении этого учебника я буду использовать subl в качестве сокращения для "откройте в вашем любимом текстовом редакторе."

install: --no-rdoc --no-ri
update:  --no-rdoc --no-ri
Листинг 1.2. Подавление загрузки ri и rdoc документации в .gemrc.

Установка Rails

Поскольку вы уже установили RubyGems, установка Rails должна быть легкой. Этот учебник заточен под Rails 4.0, которые мы можем установить следующим образом:

$ gem install rails --version 4.0.2

Для того чтобы проверить вашу установку, выполните следующую команду для того чтобы вывести на экран номер версии:

$ rails -v
Rails 4.0.2

Примечание: если вы установили Rails используя Rails Installer в Разделе 1.2.2.1, здесь может быть небольшое различие в версиях. На момент написания эти отличия незначительны, но в будущем, поскольку текущая версия Rails может отличаеться от используемой в этом учебнике, эти отличия могут стать довольно существенными. В настоящий момент я работаю с Engine Yard над созданием ссылок на различные версии Rails Installer.

Если вы используете Linux, в этой точке вам может потребоваться установка нескольких дополнительных пакетов:

$ sudo apt-get install libxslt-dev libxml2-dev libsqlite3-dev # только для Linux
Лекция 1: 123456789 || Лекция 2 >
Вадим Обозин
Вадим Обозин

Здравствуйте, записался на курс. При этом ставил галочку на "обучаться с тьютором". На email пришло письмо, о том, что записался на самостоятельное изучение курса. Как выбрать тьютора?

Акбар Ахвердов
Акбар Ахвердов
Россия, г. Москва
Артём Зайцев
Артём Зайцев
Украина, ДНР