Рубрика «rvm»

Привет! Недавно мы выпустили RubyMine 2017.1, новую версию нашей IDE для Ruby и Rails, и уже обновили её до более стабильной версии 2017.1.1. Пора рассказать о том, что в ней нового.

RubyMine 2017.1: Docker, RuboCop, автогенерация Rails-тестов, улучшения для Puppet - 1

  • Docker
  • Создание RVM-гемсетов
  • RuboCop
  • Мгновенное создание Rails-тестов
  • Улучшения для разработки модулей Puppet
  • Структура проекта Puppet
  • Улучшения для JavaScript
  • Обновленный поиск в VCS

Читать полностью »

Год назад я довел свое первое рельсовое приложение до приемлемого вида. Вопрос использования готового кода в продакшене ранее меня не заинтересовал. С чего вдруг? Несложный язык, лаконичный фреймворк — уж деплой-то явно не сложнее, чем преодоление ментального тормоза после PHP.

Команда разработчиков Rails рекомендует использовать Phusion Passenger, он что-то вроде mod_php — установил, разместил файлы и полетел. На момент изучения вопроса на форумах хватало баталий о производительности решений; Passenger в них фаворитом не значился.

Совета относительно альтернативы я спросил у техдиректора сайта с миллионом уников в сутки — тот отправил меня гуглить на тему Nginx и Unicorn. Инструкция по настройке продакшена, найденная на Хабре, датировалась 2009 годом. Помимо прочего, ее просто переполняли изъяны уроков «Как нарисовать сову».

Отдельные составляющие процесса кое-где разжеваны по-английский, но монолитный tutorial на глаза так и не попался. В традициях рельсового сообщества лежит принцип, предписывающий делиться результатами и опытом решения проблем.
Читать полностью »

Свою первую программу я писал для интерпретатора Basic. Он запускался при включении машины, а после ввода программу можно было выполнить командой RUN.

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

К психиатру пришел человек с жалобой на невроз.
— А кем же вы работаете? — интересуется доктор.
— Сортировщиком апельсинов на овощной базе. Передо мной желоб, по которому катятся апельсины. Крупные я должен класть в один ящик, а мелкие — в другой.
— Что же нервного в такой работе?
— Как что? Я целый день должен принимать решения, решения, решения.

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

Итак, для создания rails-приложения нам понадобятся
Читать полностью »

RVM Autolibs: Автоматическое управление зависимостями и Ruby 2.0
Прошлый месяц ознаменован началом новой вехи для рубистов — релиз Ruby 2.0.0. Вместе с ним обновлённый RubyGems и новые зависимости, включая OpenSSL. Ранее RVM почти ничего не предпринимала для разрешения зависимостей, устанавливая вместо этого LibYAML, так как он был нужен для функционирования RubyGemsк. Ситуация изменилась с появлением OpenSSL, так как это является бОльшей зависимостью. Раньше для Ruby 2.0.0-rc RVM устанавливал OpenSSL. Однако компилирование OpenSSL не лёгкая задача, используя LibYAML.
Читать полностью »

Во-первых, нужно сказать «спасибо» автору этого руководства. Без него я бы долго ещё не сел за написание сего поста: кучу проблем пришлось бы решать самостоятельно. Однако в моём случае ситуация была чуть другая (не Debian, а FreeBSD), да и вопрос с автозапуском unicorn остался открытым. Встречавшиеся мне на просторах интернета решения на изящество тоже не претендовали: делать по службе на веб-приложение — моветон. Во FreeBSD эта проблема решается на первый взгляд просто — созданием «метаслужб», позволяющих запускать более одного экземпляра (в качестве примера — FreeBSD jails). Однако, как это часто бывает, есть нюансы…
Читать полностью »

Эта статья для тех, кто хочет ускорить запуск рельс, а заодно ускорить работу интерпретатора ruby.
О том как установить RVM (Ruby version manager) уже написано много статей, поэтому я перейду сразу к делу.
Список патчей в RailsExpress для Ruby 1.9.3-p362
(это последняя версия руби на момент написания статьи)

Applying patch railsexpress/01-fix-make-clean.patch
Applying patch railsexpress/02-railsbench-gc.patch
Applying patch railsexpress/03-display-more-detailed-stack-trace.patch
Applying patch railsexpress/04-fork-support-for-gc-logging.patch
Applying patch railsexpress/05-track-live-dataset-size.patch
Applying patch railsexpress/06-webrick_204_304_keep_alive_fix.patch
Applying patch railsexpress/07-export-a-few-more-symbols-for-ruby-prof.patch
Applying patch railsexpress/08-thread-variables.patch
Applying patch railsexpress/09-faster-loading.patch
Applying patch railsexpress/10-falcon-st-opt.patch
Applying patch railsexpress/11-falcon-sparse-array.patch
Applying patch railsexpress/12-falcon-array-queue.patch

Читать полностью »

Совсем недавно во многих ruby-блогах, сообществах, да и на хабре, было написано немало постов о том что RVM дурно влияет на производительность RMI-версии ruby (официальный интерпритатор языка) по причине того что установщик не учитывает оптимизации компилятора GCC. Конечно для этого недуга были «лекарства», но применять их приходилось ручками, причем довольно-таки прямыми. Так вот, спешу всех обрадовать что в последних версиях RVM (начиная с версии 1.17.0) ситуация изменилась, и конечно же в лучшую сторону, теперь Вы снова можете полностью положится на менеджера версий ruby. Все что Вам нужно сделать — это обновиться до последней версии.
Читать полностью »

Ruby на вашем сервере может работать в 2 раза медленее из за RVM
Просматривая сегодня «Ruby Inside», наткнулся на статью Justin Kulesza Is Your Application Running with Ruby – Slow?. Статья от 6 ноября, но Хабре об этой ситуации ни слова. А суть статьи вот в чем: ребята переносили свое приложение с сервера на Solaris на сервер с Ubuntu и использовали RVM для компиляции Ruby. Однако после переноса они заметили, что приложение стало как-будто бы тормознутее. Сначала погрешили на железо, но быстро выяснили, что дело в RVM, а именно в том, что RVM совершенно не использует оптимизацию при компиляции.
Читать полностью »

На хабре уже есть несколько статей о rbenv (раз, два, три), но ни в одной не упомянут очень удобный инструмент rbenv-installer. Этой статьёй я и заполню этот пробел.

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

В одном из моих проектов мне понадобилось периодически запускать задачи (rake tasks) с помощью cron. Задачи для cron-а я формировал и записывал в crontab с помощью гема whenewer. Тогда я ещё пользовался RVM и cron в лог писал что-то вроде:
bundle: command not found

Искал решение с помощью гугла и нашёл в issues whenewer-а упоминание о такой же проблеме. Тикет был закрытым и упоминалось что в rbenv всё работает. Установил я rbenv и без каких-либо дополнительных настроек мои cron-задачи стали работать так как я и хотел. С того дня в новых проектах я только rbenv использую.
Читать полностью »

Для корректной работы многих rails-приложении требуются конкретные версии состовляющих компонент, таких как версия ruby, версия самого rails, а так же rake, rubygems и т.д. И скорее всего в вашем дистрибутиве Linux (в моём случае это Ubuntu 10.04 LTS Server) версии этих компонент будут отличаться. Можно пойти простым путём — поставить ruby нужной версии из исходных кодов, а всё остальное с помощьью rubygems. Но мы же хотим получить надёжный и воспроизводимый результат, а систему, при этом не превратить в свалку.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js