Вы, наверное, недавно заметили несколько статей о SitePoint и его свойствах, посвященных Heroku и их предложениям; они определенно встряхивают вещи на арене облачных сервисов! На самом деле, я недавно написал статью, в которой рассказывал о предложении Heroku «База данных как услуга», Heroku Postgres . Но как разработчик PHP, которому почти 10 лет, я наткнулся на неприятное препятствие, когда я изучал их интеграционное предложение для Facebook … Мне пришлось установить Ruby!
Ну, нет, это было не совсем так. Видите ли, у меня не было установленного Ruby в моей системе, поэтому я сначала попытался установить его, используя утилиты управления пакетами моей системы. Я использую Ubuntu 11.10, и поэтому я использовал apt-get. Казалось, все прошло хорошо, но я столкнулся с проблемами при использовании драгоценного камня heroku. После исследования всего я сам установил Ruby с помощью замечательной утилиты RVM.
Я хотел поделиться процессом установки Ruby в Ubuntu с RVM, так как увидел, что у некоторых других были похожие проблемы с гемом heroku, и Гленн был достаточно мил, чтобы сделать это. Если вы гуру из Ruby, извините … посчитайте эту статью бессмысленным разработчиком PHP. Но если вы новичок в Ruby или испытали проблемы с гемом в Ubuntu, надеюсь, эта краткая статья будет вам полезна.
Установка RVM
Вы можете выйти и установить Ruby из исходного кода самостоятельно, но я рекомендую установить его вместо этого с помощью Ruby Version Manager (RVM). RVM на самом деле представляет собой небольшой набор сценариев, которые позволяют легко установить несколько версий Ruby в вашей системе и позволяют изолированным программным средам изолироваться друг от друга; вам не нужно беспокоиться о несовместимых версиях гемов, сражающихся друг с другом и со всеми другими возможными неприятностями, которые могут произойти.
Прежде всего, установите зависимости, используемые самим RVM (для этого безопасно использовать пакеты по умолчанию).
sudo apt-get install curl git-core
Затем установите RVM, следуя инструкциям на веб-сайте RVM . Поверьте мне, вы действительно хотите установить его вручную, а не использовать упакованную версию. Не все зависимости, которые вам понадобятся позже, будут установлены пакетом Ubuntu, есть некоторые конфликты из-за libreadline, и у меня все еще были проблемы с попыткой заставить работать вещи после установки зависимостей с упакованной версией.
bash < <(curl -sk https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc source ~/.bashrc
Обратите внимание на дополнительные зависимости, перечисленные в выходных данных установки. Вам нужно будет установить их в считанные минуты. Но сначала краткое объяснение того, что делают вышеуказанные команды.
curl
получает самую последнюю версию скрипта установщика RVM из GitHub. Параметр -s
подавляет обычный вывод команды (индикатор выполнения, сообщения об ошибках и т. Д.), А параметр -k
позволяет curl устанавливать небезопасное соединение HTTPS, если возникла проблема с SSL-сертификатом GitHub. Лично я не согласен с рекомендацией использовать -k
поэтому я ее пропустил, когда запускал команду в своей системе и не имел вредных последствий. Выходные данные загрузки затем перенаправляются в оболочку Bash, где выполняется сценарий установки.
RVM устанавливается локально в вашем домашнем каталоге в скрытом каталоге .rvm
. Вторая команда добавляет тест в ваш файл .bashrc
чтобы проверить, rvm
файл rvm
который содержит важные команды оболочки, и, если это так, загружает их в сеанс терминала. [[ ]]
— это встроенный оператор Bash, который проверяет, является ли выражение истинным или нет, а -s
является проверкой, существует ли файл. source
читает и выполняет команды в файле для обновления вашей среды Bash.
Установка Ruby
Руководство по быстрому старту Heroku рекомендует использовать Ruby 1.9.2, что звучит довольно неплохо, поэтому я не стал спорить. Установка нескольких версий Ruby тривиальна с использованием RVM. Чтобы убедиться, что компиляция прошла гладко, прокрутите назад в сеансе терминала и посмотрите список необходимых пакетов, которые должны быть установлены (вероятно, лучше всего вырезать и вставлять все имена, чтобы избежать ошибок при печати).
sudo apt-get install build-essential openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev autoconf libc6-dev libncurses5-dev automake libtool bison subversion
Теперь вы можете использовать команду rvm для загрузки, компиляции и установки Ruby.
rvm install 1.9.2 rvm use 1.9.2 --default
Первая команда ( rvm install
) запускает процесс загрузки / компиляции / установки и устанавливает Ruby и его гемы в ~/.rvm
, в безопасности от всего остального в вашей системе. Вторая команда ( rvm use
) устанавливает версию Ruby 1.9.2 в качестве активного значения по умолчанию.
Вы можете проверить, что 1.9.2 доступен для вас сейчас, с помощью следующего:
ruby -v
Резюме
С помощью RVM я смог быстро и без усилий установить Ruby, когда мне не удалось установить пакет с дистрибутивом. Хорошая вещь и в этом подходе состоит в том, что среды Ruby помещены в «песочницу», поэтому мне не нужно беспокоиться о том, что разные версии будут попирать друг друга. Я не только могу иметь разные версии гемов, расположенных рядом, но я также могу легко установить другие реализации Ruby (MRI, REE, JRuby и т. Д.).
По правде говоря, я бы не возражал, если бы у PHP был такой инструмент, хотя я думаю, что было бы немного сложно управлять вещами, учитывая, как PHP взаимодействует с серверами, такими как Apache.
После установки RVM вы можете поэкспериментировать с ним и посмотреть, что еще он может сделать, чтобы упростить управление средой. Я наткнулся на .rvmrc
« Как использовать RVM», в котором .rvmrc
переключение между средами Ruby, а затем использование файла .rvmrc
для переключения сред на основе вашего рабочего проекта.