Как установить Ruby, Rails, Subversion, Mongrel и MySQL на MacOS

Из данной статьи вы узнаете как произвести установку полного набора необходимых приложений для того, чтобы начать разработку на Ruby On Rails.

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

Собирая это всё из исходников мы получаем полный контроль над нашей системой. Мы в курсе что и куда установлено, какие версии мы используем, откуда мы их берём, и это без привязки к какой-либо системе портов и ошибок, возникающих когда кто-либо за нас распоряжается нашим софтом.

Кроме всего этого, вы должны знать почему и как мы устанавливаем софт в /usr/local/ (это описано в статье)

О неудалении старых версий

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

Общая идея

Всё что нам нужно сделать — это скачать все необходимые инструменты (некоторые программы требуют наличия друг друга для работы), настроить их, скомпилировать их и установить, один за другим, пока не получим всё что нужно для запуска Ruby on Rails в Mac OS X.

Что необходимо

Несколько вещей необходимо для запуска:

  1. Mac OS X 10.4 (а может и 10.3)
  2. Xcode 2.4 или новее (будет компилировать наши программы)
  3. Готовность набирать команды в Терминале, в таком виде, как они показаны здесь (копировать-вставить тоже можно)
  4. Вкусный напиток для того чтобы не скучать в ходе компиляции

Замечание: Xcode не установлен по умолчанию на новых маках, но может быть найден на установочном диске Mac OS X или скачан с сайта Apple's Developer Connection совершенно бесплатно.

Еще замечание: Эти инструкции подразумевают что вы используете bash в качестве UNIX shell в Mac OS X. Если вы не в курсе что это значит и ничего не делали чтобы изменить это, тогда всё в порядке. Если же вы изменили shell по умолчанию на отличный от bash (например tcsh) вам нужно будет внести соответствующие изменения в синтаксис и переменные окружения, или вернуться в bash. Не обессудьте.

Предупреждение

Несмотря на то что маловероятно повредить систему нашими действиями, однако иметь бэкап всего это хорошее правило, просто на всякий случай. Я освобождаю себя от всякой ответственности за результаты (хорошие или плохие) следования этим инструкциям. Вы делаете всё это на свой страх и риск.

Замечание про sudo

Мы будем использовать команду sudo довольно часто и многим интересно что она делает. Если кратко — эта команда позволяет пользователю (в нашем случае вам) выполнять команду как суперпользователю, позволяя вам стать всемогущим хозяином компьютера на одну команду.

С большим могуществом приходит большая ответственность, так что Mac OS X спросит ваш пароль перед выполнением команды. Это может произойти один или несколько раз в ходе нашей установки. Просто введите его при необходимости.

Терминал

Откройте приложение Терминал. Вы можете его найти в папке
/Программы/Служебные программы (/Applications/Utilities)

Каждая линия в моноширинном шрифте должна быть набрана в Терминале и завершаться нажатием клавиши Ввод. Но это и так все знают.

Пути (Paths)

Не пропускайте этот шаг! Ничего не заработает если пропустите.

Mac OS X, как и другие UNIX системы, использует кое-что, называемое путь (path) чтобы определять где должен производиться поиск приложений для командной строки (когда вы используете Терминал). Путь (path) — это переменная окружения, устанавливаемая специальным файлом каждый раз, когда вы открываете новое окно Терминала.

Мы должны быть уверены что у нас задан путь /usr/local для поиска файлов (место куда мы будем устанавливать программы). Это важно.

Чтобы убедиться что переменные установлены правильно мы должны проверить содержимое файла . bash_login (специальный файл, скрытый в домашней папке). С помощью текстового редактора найти строку PATH. TextMate, TextWrangler, BBEdit и vi — всё это отличные варианты. Например чтобы открыть файл с помощью TextMate мы должны набрать:

mate ~/.bash_login

Откроется существующий файл или создастся новый, если его нет. Добавьте следующую строчку в самый конец файла:

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 

Теперь сохраните и закройте файл.

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

. ~/.bash_login

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

Замечание для продвинутых: Вы может быть удивлены тем что я добавил MySQL к пути в конце строки. Это потому что большинство пользователей установят MySQL позже в ходе этой инструкции. Если же вы из тех кто использует SQLite, PostGreSQL или что-то еще, вы спокойно можете убрать /usr/local/mysql/bin: и заменить это собственным путём к базе данных. Если это замечание не про вас или вы не планируете использовать MySQL, просто пропустите его… ничего страшного не произойдет.

Предустановки

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

Для этого примера мы создадим папку под названием src в /usr/local. Это будет наша рабочая папка для всего что мы тут будем делать.

sudo mkdir -p /usr/local/src
sudo chgrp admin /usr/local/src
sudo chmod -R 775 /usr/local/src
cd /usr/local/src 

Вы будете скачивать и компилировать всё в этой новой папке.

Ruby

Ну теперь мы готовы к настоящей работе. Просто набирайте (или копируйте-вставляйте) каждую строчку в Терминал, одну за другой. Когда одна строка выполнится (некоторые из них выполняются в течении некоторого времени и выводят кучу информации на экран) вводите следующую.

Как уже было сказано, в первый раз использования команды sudo (а возможно и не только в первый) вам будет предложено ввести пароль. Просто введите ваш пароль и процесс продолжится.

Мы начнем с Ruby, но прежде чем мы сможем скомпилировать его, нам необходимо собрать приложение от которого он зависит, которое называется readline. Следующие команды скачивают, разархивируют, настраивают, компилируют и устанавливают программу. Этот «патерн» станет вам более понятен, в ходе нашего продвижения шаг за шагом.

curl -O ftp://ftp.gnu.org/gnu/readline/readline-5.1.tar.gz
tar xzvf readline-5.1.tar.gz
cd readline-5.1
./configure --prefix=/usr/local
make
sudo make install
cd ..

Если вы получили ошибку подобную этой после того как ввели команду configure:

checking whether make sets $(MAKE)... no
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH

Значит вы не следовали инструкции и не установили Xcode.

Если же вы видите кучу текста, но не видите ошибки — значит всё идёт хорошо и мы можем перейти к установке собственно Ruby:

curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz
tar xzvf ruby-1.8.6.tar.gz
cd ruby-1.8.6
./configure --prefix=/usr/local --enable-pthread --with-readline-dir=/usr/local
make
sudo make install
sudo make install-doc
cd ..

Если перед вашими глазами промелькало много текста и все прошло без ошибок — значит мы имеем свежеустановленный Ruby.

Мы можем проверить это (так же как и правильность настройки путей) следующей командой:

ruby -v

Вы должны увидеть что-то наподобие этого:

ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]

Не беспокойтесь на счет круглых или квадратных скобок, это детали на счет архитектуры системы и нам они сейчас не важны. Что действительно важно — это то что вы видите ruby 1.8.6 Это значит что вы получили новую версию Ruby и правильно прописали пути.

Если же надпись похожа на:

ruby 1.8.2 (2004-12-25)

Это значит что установка не прошла успешно или же вы неправильно установили переменную path в самом начале (может вы не перезагрузили скрипт . bash_login или не перезапустили Терминал). Вернитесь и проверьте.

RubyGems

RubyGems — это инструмент для командной строки, который позволяет управлять пакетами Ruby, такими как Rails и Mongrel.

curl -O http://files.rubyforge.mmmultiworks.com/rubygems/rubygems-0.9.2.tgz
tar xzvf rubygems-0.9.2.tgz
cd rubygems-0.9.2
sudo /usr/local/bin/ruby setup.rb
cd ..

Ruby on Rails

Когда RubyGems установлен, Rails устанавливается просто, в одну строчку:

sudo gem install rails --include-dependencies

Если вы видите ошибку похожую на:

/usr/local/bin/gem:3:in `require': No such file to load -- rubygems (LoadError)
from /usr/local/bin/gem:3

Значит вы не следовали инструкции и не установили переменную path в самом начале. Вернитесь на самый первый шаг и повторите его, затем повторите этот шаг.

Mongrel

Mongrel это быстрая HTTP библиотека и сервер для Ruby. Он позволяет вам запускать ваши Rails приложения без компиляции или использования сторонних программ (таких как FastCGI, LightTPD или Apache).

Особенно хорошо что Mongrel это gem и устанавливается с RubyGems:

sudo gem install mongrel --include-dependencies

Вы увидите приглашение выбрать гем для вашей платформы:

Select which gem to install for your platform
 1. mongrel 1.0.1 (ruby)
 2. mongrel 1.0.1 (mswin32)
 3. mongrel 1.0 (mswin32)
 4. mongrel 1.0 (ruby)
 5. Skip this gem
 6. Cancel installation

Ваши версии могут отличаться, но всё равно нужно выбирать ту что выше и заканчивается с «(ruby)». Обычно это первый вариант. Просто введите номер и нажмите клавишу ввода.

Subversion (опционально)

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

Для использования Rails svn не обязательна, но крайне желательна. Она используется разработчиками Rails для работы с дистрибьютивом, большинством хостеров для размещения приложений (с помощью Capistrano) и большинством Rails-разработчиков для управления кодом.

curl -O http://subversion.tigris.org/downloads/subversion-1.4.6.tar.g
curl -O http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.gz
tar xzvf subversion-1.4.6.tar.gz
tar xzvf subversion-deps-1.4.6.tar.gz
cd subversion-1.4.6
./configure --prefix=/usr/local --with-openssl --with-ssl --with-zlib
make
sudo make install
cd ..

Capistrano

Capistrano это утилита, которая может быть использована для автоматического развертывания ваших Rails приложений. Многие Rails приложения и хостеры требуют её наличия, и несмотря на то, что технически можно пропустить этот шаг, это просто, быстро и лишним не будет. Рекомендую. Вы можете получить последнюю версию гема с этим:

sudo gem install capistrano --include-dependencies

Так же я рекомендую установить termios, гем который заменяет UNIX команду termios, что позволяет скрывать пароль, вводимый в Capistrano от отображения в Терминале.

sudo gem install termios --include-dependencies

Технически вы можете на этом остановиться. Но большинство Rails приложений не работает без базы данных…

MySQL

Конечно можно компилировать и установить MySQL самостоятельно, но проще и полезнее воспользоваться пакетом для Mac OS X. Установка пакета не только проще и быстрее, но и включает в себя элемент для автозапуска и панель настроек, кроме того готовая программа настроена командой разработчиков MySQL для Mac OS X.

Кроме того пакет MySQL устанавливается в папку /usr/local как нам и надо.

Для установки нужно выполнить некоторые шаги:

  1. Скачать MySQL 5.0 package for OS X PPC или MySQL 5.0 package for OS X Intel
  2. Дважды кликнуть на образе диска чтобы примонтировать его
  3. Найти и запустить установщик (он называется наподобие mysql-5.0.37-osx10.4-i686. pkg) при необходимости ввести пароль.
  4. Дважды щелкнуть на MySQLStartupItem. pkg, авторизироваться и установить его
  5. Дважды щелкнуть на MySQL. prefPane и установить его, решив будет ли установка только для текущего пользователя или же для всех пользователей системы.

Как только установка будет завершена, запустите сервер используя свежепоставленную панель управления.

Замечание: MySQL устанавливается с пользователем по умолчанию root и без пароля. Если вы заботитесь о безопасности вашего компьютера или данных, пожалуйста прочитайте страницу о паролях и именах пользователей MySQL и выберите хорошее.

MySQL Native Bindings Gem (гем связка, опционально)

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

sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql

Так же как при установке Mongrel, вам будет предложен выбор какой гем устанавливать:

Select which gem to install for your platform
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. Skip this gem
6. Cancel installation

И снова мы выберем ближнюю к верху списка позицию, заканчивающуюся на «(ruby)». В приведенном примере мы выбрали бы номер 3. Вы увидите некоторое количество текста и когда все закончится у нас будет установлена связка MySQL, которая помогает базе данных работать немного быстрее.

Мы закончили.

Поздравляю, вы получили вручную настроенную, правильно расположенную установку Ruby, Ruby on Rails, MySQL, Mongrel, Subversion и Capistrano!

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

rails testapp
cd testapp
script/server

Вы создадите обычное Rails приложение в папке testapp в вашей текущей папке (вероятно это /usr/local/src если вы делаете это после нашего последнего шага).

Если всё в порядке, вы увидите нечто подобное:

=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
** Rails signals registered.  HUP => reload (without restart).  It might not work well.
** Mongrel available at 0.0.0.0:3000
** Use CTRL-C to stop.

Вы можете проверить ваше новое приложение кликнув на ссылке или вставив её в ваш любимый браузер: http://localhost:3000/

Что дальше?

Чтобы выполнить какую-либо реальную работу с вашим приложением вам понадобится база данных. По соглашению, используемому в Rails база данных называется так же как и приложение (в нашем случае testapp).

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

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

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

mysqladmin -uroot create testapp_development

Если вы задали пароль для MySQL, вам необходимо добавить параметр -p в строку команды и вам будет предложено ввести пароль.

Теперь можно расслабиться.
Удачи и будьте счастливы с Rails.


Оригинал статьи - http://fakmak.com/2007/5/19/ruby-rails-mongrel-mysql-mac-os-x

Обсуждение

Re: Как установить Ruby, Rails, Subversion, Mongrel и MySQL

еще как вариант генерить скелет Rails приложения такой командой

rails -d mysql testapp

Вход для пользователей