Архив для  Июнь 2017

Главная / Июнь 2017
14 Постов

В этом посте я расскажу об установке среды разработки Ruby on Rails для Mac OS.

Мы будем устанавливать следующие пакеты:

  • Ruby
  • Rails
  • PhantomJS
  • Sublime Text

Давайте начнем. Итак, в Mac OS, и первое, что нам нужно сделать, это установить инструменты командной строки Mac OS. Это потребуются другими пакетами командной строки, с которыми мы будем иметь дело.

Так что, один из способов сделать это — заставить операционную систему запустить инструменты командной строки.

И самый простой способ сделать это — просто выполнить git --version. Это вызовет приглашение для установки инструментов командной строки. Сейчас мы не хотим получать весь Xcode для Mac OS, но мы хотим получить только инструменты, поэтому мы нажмем Install.

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

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

Домашняя страница Homebrew: brew.sh.

Как только мы установим Homebrew, установка остальных пакетов будет очень простой.

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

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

Прежде всего, как узнать, под каким вы пользователем? Если вы перейдете в Системные настройки и нажмите «Учетные записи», взгляните на пользователя, с которым вы входите в систему, под ним будет слово Admin или Standard.

И, очевидно, если он говорит «Стандартный», вы не являетесь пользователем admin, вы являетесь стандартным пользователем.

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

Если вы находитесь на домашней странице установщика пакетов Homebrew, вы увидите здесь небольшую заметку, в которой говорится, что здесь есть больше вариантов установки. Нажмем эту ссылку. Вы увидите здесь опцию в Alternative Installs под названием Untar anywhere.

Нам действительно нужно пойти в наш домашний каталог в нашем терминале и выполнить данную команду.

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

Это установит Homebrew. Если выполните ls, вы увидите, что пакет теперь установлен.

Далее:

cd homebrew/
ls
cd bin/
ls
pwd

Мы получим полный путь. Копируем его.

Затем:

cd ~
ls -al

Если нет файла .bash_profile, создаем его.

vim .bash_profile

В этом примере используется vim, но вы можете использовать любой редактор. Пишем:

export BREW_HOME=<ваш путь>

PATH=$BREW_HOME:$PATH

Должно получиться вроде этого:

export BREW_HOME=/Users/Kirill/homebrew/bin

PATH=$BREW_HOME:$PATH

Сохраняем файл.

Выполняем source .bash_profile.

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

brew -v

Установка Homebrew для стандартного пользователя завершена.

Далее рассмотрим установку для пользователей с правами администратора.

Просто копируем и вставляем команду с сайта:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Именно такая установка требует прав администратора, поэтому стандартные пользователи не могут этого делать.

Подтверждаем, вводим пароль. Homebrew установлен.

Теперь мы можем перейти непосредственно к установке нашего окружения.

Устанавливаем Ruby Environment Manager. Это должно быть супер-просто.

brew install rbenv ruby-build

Итак, как только это будет сделано, нам нужно вставить некоторые параметры в наш .bash_profile.

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source `/.bash_profile

Устанавливаем непосредственно Ruby с помощью rbenv:

rbenv install 2.2.3

Установка займет около 15-20 минут.

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

rbenv global 2.2.3

Проверяем:

ruby -v

Устанавливаем Rails. Rails устанавливается как обычный gem, так что просто выполняем:

gem install rails

Это установит последнюю версию. Если вы хотите установить конкретную версию, используйте эту команду:

gem install rails -v 4.2.3

Как только Rails установлен, нам нужно выполнить rbenv rehash. Эту команду следует выполнять при установке любого gem’a, который добавляет новые команды в терминал.

Можем проверить, что Rails установлен и имеет корректную версию:
rails -v

Неплохо было бы создать тестовое приложение:
rails new test_app

Запускаем Rails-сервер

cd test_app.
rails s

«rails s» это сокращенная команда «rails server».

Открыть приложение можно по адресу http://localhost:3000/.

Чтобы выключить сервер, нажимаем Ctrl+C.

Рассмотрим установку последней версии Git.

Если вы введете git --version, вы увидите, что Git уже установлен Apple по умолчанию. Вы можете оставить его как есть, либо можете обновить до последней версии. Это реально просто с Homebrew:

brew install git

Но нужно дать системе знать, что мы хотим использовать эту версию.

vim .bash_profile

Внизу добавляем:

export GIT_HOME='usr/local/Cellar/git/2.5.1/bin'

PATH=$GIT_HOME:$PATH

Ваш путь может отличаться.

Сохраняем.

Выполняем source .bash_profile. Так мы можем быть уверены, что это будет работать в данной сессии.

Можем проверить: git --version.

Устанавливаем PhantomJS.

brew install phantomjs

Можем проверить: phantomjs -v.

Ну и последняя вещь: установка Sublime Text 3.

Ищем в гугле «Sublime Text 3», переходим на официальный сайт, скачиваем файл для Mac OS и запускаем.

Установка Ruby on Rails.

В этом посте мы рассмотрим установку необходимого ПО:

  • Ruby (интерпретатор языка)
  • Rails (платформа для веб-приложений и зависимости)
  • PhantomJS (поддержка безгласного веб-тестирования)
  • Sublime Text (опциональный редактор текста)

Мы будем устанавливать оригинал Matz’а, интерпретатор Ruby MRI Interpreter, основанный на C. Это означает, что мы собираемся много компилировать на нашей платформе Linux.

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

Менеджер установки определяет, какие gem’ы работают с версиями Ruby. Установку различных версий в разные моменты времени. Сейчас есть несколько менеджеров, которые вы можете установить, и есть два, скажем, ведущих. Есть и другие.

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

Rbenv является более легким по весу решением, и во многом он работает по более традиционному пути UNIX.

Ладно, перейдем на сайт Rails, нажмем на загрузку.

Они рекомендуют rbenv. Хорошо, выбор немного проще. И они ссылаются на GitHub Стивенсона, у которого есть реализация. Там нет всех инструкций, но есть неплохая часть.

Так что погуглив, я нашел хорошую статью от Митчелла Аттика, о том, как установить Ruby on Rails с rbenv на Ubuntu. Отлично.

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

Как вы знаете, Ubuntu использует apt-get в качестве менеджера пакетов, а Fedora использует yum.

Когда мы запускаем этот диспетчер пакетов, мы используем команду sudo, которой нужен пароль, и этот пароль будет действовать в течение определенного периода времени.

Ubuntu:

sudo apt-get update -y

Fedora:

sudo yum update -y

Затем мы установим Git. Мы собираемся использовать Git изначально, чтобы клонировать репозитории rbenv и Ruby build.
И, конечно, он понадобится нам также в будущем.

Ubuntu:

sudo apt-get install -y git gitk git-gui

Fedora:

sudo yum install -y git gitk git-gui

На обоих системах это займет около пары минут до завершения.

Затем мы установим компилятор и некоторые из библиотек, которые он будет использовать для создания Ruby и различных gem’ов, которые есть там.

Ubuntu:

sudo apt-get install -y gcc build-essential libpq-dev libssl-dev libreadline-dev libsqlite3-dev zliblg-dev

Fedora:

sudo yum install -y gcc gcc-c++ libpqxx-devel openssl-devel readline-devel sqlite-devel zlib-devel

Данная установка занимает около нескольких минут.

Затем у нас есть две очень похожие операции на обеих платформах. Мы собираемся клонировать/устанавливать репозиторий rbenv.
Мы собираемся поместить его в папку прямо под home.

Ubuntu:

cd
git clone git://github.com/sstephenson/rbenv.git .rbenv

Fedora:

cd
git clone git://github.com/sstephenson/rbenv.git .rbenv

Клон был помещен в папку под home, и мы будем использовать переменные, чтобы указать на это местоположение.

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

Предположим, что есть некоторый текст, recipepuppy.com, работающий на порте 80.

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

И мы можем сделать это немного более постоянным, если поместим его в наш bashrc.

echo 'export RECIPEPUPPY_HOSTPORT=www.recipepuppy.com:80' >> ~/.bashrc

Если мы посмотрим
tail ~/.bashrc

Мы увидим, что это находится в конце.

Итак, исполняем source ~/.bashrc, чтобы объявить эту переменную среды.

Тогда мы можем использовать ее, к примеру, чтобы запустить в Chrome:

chrome http://$RECIPEPUPPY_HOSTPORT 2> /dev/null

Продолжим установку.

tree ~/.rbenv -L 1
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Добавляем также еще одну часть информации, это rb init. Он добавляет скрипты завершения команды.
Он также попадает в ваш путь, так что вы можете завершить частичные команды, которые вы запустили для Ruby.

После того, как он на месте, нужно просто сделать source, чтобы получить то, что мы только что вложили, в нашу оболочку.

echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

Следующее, что мы вносим, это ruby-build, это дает нам возможность фактически установить ruby внутри rbenv.

clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Он будет установлен под home, ниже rbenv, в папке плагинов.

И, как и прежде, эта папка также должна быть добавлена в ваш путь.

echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Теперь, вот шаг, которого мы ждали. Здесь мы собираемся установить Ruby.

Вы заметите много компиляций, которые будут продолжаться. Можно ожидать, что это займет около 20-30 минут установки.

Итак, убедитесь, что вы ввели эту команду:

rbenv install -v 2.2.2

Затем можете пойти за чашкой кофе и бутербродом, пока идет установка.

Если будут какие-либо ошибки или остановки, скорее всего вам не хватает какого-то пакета. Если вы загуглите ошибку, вам будет легко найти чего вам не хватает.

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

rbenv global 2.2.2

Проверяем:
ruby -v

Один из вариантов, который я предлагаю установить, заключается в том, чтобы сказать, чтобы gem’ы не генерировали локальную документацию. Это просто съедает дисковое пространство и время, когда они загружаются.

echo "gem: --no-document" > ~/.gemrc

Затем устанавливаем менеджер gem’ов Rails. Это будет большим плюсом, когда мы начнем устанавливать gem’ы в наши приложения.

gem install bundler

Теперь еще один интересный шаг. Теперь мы собираемся установить Rails.
Установка может занять несколько минут или около того.

gem install rails -v 4.2.3

После установки Rails, мы делаем rehash rbenv. Это советуют делать после установки любого gem’а, добавляющего команды.

rbenv rehash

Ruby и Rails готовы к использованию.

Затем мы собираемся установить одну из библиотек JavaScript, и здесь нам нужно дать Ubuntu некоторые уникальные инструкции.

Поэтому мы собираемся установить пару пакетов, которые вам нужны, чтобы все было подготовлено. Также устанавливаем местоположение для них.

Ubuntu:

sudo apt-get install -y software-properties-common python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js

Fedora:

curl -sL https://rpm.nodesource.com/setup | sudo bash -

И теперь финальные команды.

Ubuntu:

sudo apt-get install -y nodejs

Fedora:

sudo yum install -y nodejs

NodeJS установлен.

Затем мы собираемся установить PhantomJS. PhantomJS — это библиотека, которая позволяет нам проводить безгласное тестирование веб-приложений. Это значительно упростит модульное тестирование (юнит-тестирование), очень полезная вещь.

Мы начнем с того, что убедимся, что у нас есть bzip, потому что это будет частью наших шагов по установке.

Ubuntu:

sudo apt-get install -y bzip2

Fedora:

sudo yum install -y bzip2

Затем мы установим переменную среды, поэтому нам не нужно повторять себя, когда мы будем ссылаться на имя библиотеки.

export PHANTOM_JS="phantomjs-1.9.8-linux-x86_64"

Далее:

cd /tmp
curl -L https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 | tar xvjf
sudo mv $PHANTOM_JS /usr/local/share
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin

Проверяем версию:
phantomjs -v

Как уже говорилось, разработчики обычно используют тот редактор кода который нравится, некоторые даже используют gedit как это делаю я. Но рассмотрим установку Sublime Text для логичного завершения этой статьи.

curl http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64.tar.bz2 | tar -xjf -
sudo mv 'Sublime Text 2' /opt/SublimeText2
echo export PATH='$PATH:/opt/SublimeText2' >> ~/.bashrc
source ~/.bashrc

Запускаем:
sublime_text

Вся установка должна быть готова.

Добро пожаловать в Ruby on Rails.

Что мы рассмотрим для начала: установка необходимого ПО, редакторы кода, Git.

Установка ПО

Конечно же, мы не можем разрабатывать RoR-приложение, если у нас не установлены сами Ruby и Ruby on Rails.

Этот процесс будет отличаться для разных ОС: Windows, Linux, Mac OS.

Редакторы кода

Каждый разработчик предпочитает использовать редактор кода по своему выбору, тот который ему нравится. Для примера, мы рассмотрим Sublime Text.

Git

Git — это распределённая система управления версиями. Этот набор слов означает, что Git позволяет делать снимки вашего кода.

Представьте себя пишущим код, и всё работает. Поэтому вы делаете снимок этого конкретного кода в это конкретное время.

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

Раньше считалось, что Git используют только разработчики. Но все изменилось, и теперь даже веб-дизайнеры или люди, которые не работают в IT, например издатели или редакторы, тоже используют Git.

Потому что все признают ценность возможности сделать мгновенный снимок своей работы и быть в состоянии вернуться к нему в любой момент.

На самом деле, Rails поощряет нас использовать Git, потому что, как мы увидим, когда вы создаете Rails-приложение, оно автоматически генерирует файл .gitignore.
Так что мы видим то, как Rails подталкивает нас в направлении использования системы контроля версий, в частности Git.

Еще одна причина использовать Git — часто он необходим для развертывания приложения, к примеру при развертывании на Heroku.

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

Я решил представить себя в интернет-пространстве как блогера, что является вполне логичным решением.

Так как я являюсь разработчиком, как минимум для начала я постараюсь сконцентрироваться на этой теме.

Идеального времени и условий для этого не будет никогда, поэтому просто начнем.