SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
Бараблин Михаил
Mikhail.barablin@gmail.com
Ruby enVironment Manager
● Привет!
● Как работать с версиями Ruby, gem
● ... и не болеть
● mad-box.ru/rvm.odp
2/16
Проблема окружения
● Много версий гемов
● Много наборов гемов
● Разные интерпретаторы
3/16
Что такое RVM
● Автор
● Wayne E. Seguin
● rvm.beginrescueend.com
● Управление
● Окружением
● Запускаемыми файлами
● Исходниками и бинарниками
● Установленными файлами
4/16
Зависимости
● Bash
● Git
● Curl
● ( Subversion )
5/16
Установка
● Root || user
● Скрипт из интернетов
● bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
● Еще немного зависимостей
● build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g
zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev
libxslt-dev autoconf libc6-dev ncurses-dev
● Читайте вывод
6/16
Первые шаги
● rvm info
● rvm list known
● rvm install
● rvm use --default
7/16
Интерпретаторы
● rvm list
● rvm install
● Для каждого набор гемов
8/16
Gemset
● rvm use <ruby>@<gemset>
● rvm gemset
● create
● export → default.gems
● import ← default.gems
● delete
● empty
● copy
Бараблин Михаил
Mikhail.barablin@gmail.com
Gemset 2
● @global – гемы доступные для всех
gemset'ов
● Копируем установленные гемы
● rvm system;
● rvm gemset export system.gems; rvm 1.8.7; rvm
gemset import system
10/16
Продвинутая установка
● Packages
● rvm package install ree_dependencies
● Configuration
● rvm install 1.9.2 –with-openssl-dir $rvm_path/usr
● Compilation
● export optflags="-O0 -ggdb"
● Static
● rvm --static install 1.9.2
11/16
Рабочие настройки
● .rvmrc
● /etc/rvmrc
● ~/.rvmrc
● ~/projects/yet_another_project/.rvmrc
● Гемы, устанавливаемые по умолчанию
● ~/.rvm/gemsets/default.gems
12/16
Интеграция
● Bash/Zsh
● [[ -r $rvm_path/scripts/completion ]] && . $rvm_path/scripts/completion
● rvm-prompt
● Hooks ( ~/.rvm/hooks/[hook name] )
● after_use
● before_install, after_install
● after_do, after_cd
Бараблин Михаил
Mikhail.barablin@gmail.com
●Интеграция 2
● Capistrano
● require "rvm/capistrano"
● set :rvm_ruby_string, 'ree@rails3'
● Emacs, Vim, TextMate
● Passenger, Unicorn...
Бараблин Михаил
Mikhail.barablin@gmail.com
Запуск в разных окружениях
● запуск скриптов
● rvm ruby myscript.rb
● rake задачи
● rvm rake spec
● gem ...
● exec …
● Subshell
● echo $(rvm 1.9.1 ; ruby -v)
15/16
Удаление
● Сбросить магию
● rvm reset
● Удалить только ~/.rvm/rubies/...
● rvm uninstall
● Удалить все
● rvm remove <версия>
● Удалить вообще все
● Implode
16/16
Резюме
● Нет смысла не использовать
● Используйте RVM везде
Mikhail.barablin@gmail.com
Спасибо

Weitere ähnliche Inhalte

Was ist angesagt?

Javascript frameworks
Javascript frameworksJavascript frameworks
Javascript frameworks
sigmaray
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
 

Was ist angesagt? (20)

Git
GitGit
Git
 
13 HappyDev-lite-2015 autumn. Руслан Шарипов. Ruby, making programmers happy.
13 HappyDev-lite-2015 autumn. Руслан Шарипов. Ruby, making programmers happy.13 HappyDev-lite-2015 autumn. Руслан Шарипов. Ruby, making programmers happy.
13 HappyDev-lite-2015 autumn. Руслан Шарипов. Ruby, making programmers happy.
 
Javascript frameworks
Javascript frameworksJavascript frameworks
Javascript frameworks
 
Speed
SpeedSpeed
Speed
 
Cakephp
CakephpCakephp
Cakephp
 
Константин Заикин "Как начать разработку под WP7"
Константин Заикин "Как начать разработку под WP7"Константин Заикин "Как начать разработку под WP7"
Константин Заикин "Как начать разработку под WP7"
 
FizzBuzzで学ぶRuby
FizzBuzzで学ぶRubyFizzBuzzで学ぶRuby
FizzBuzzで学ぶRuby
 
Python & Web: От простого к сложному
Python & Web: От простого к сложномуPython & Web: От простого к сложному
Python & Web: От простого к сложному
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
 
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...nw.js  введение в кросс-платформенные десктопные приложения на javascript (mo...
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
 
HBase on Dev{Highload}
HBase on Dev{Highload}HBase on Dev{Highload}
HBase on Dev{Highload}
 
Web performance 101 [GDG nsk webdev meetup #3]
Web performance 101 [GDG nsk webdev meetup #3]Web performance 101 [GDG nsk webdev meetup #3]
Web performance 101 [GDG nsk webdev meetup #3]
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
 
SerVal site monitoring presentation - Презентация SerVal
SerVal site monitoring presentation - Презентация SerValSerVal site monitoring presentation - Презентация SerVal
SerVal site monitoring presentation - Презентация SerVal
 
What do you MEAN? или введение в Fullstack JavaScript
What do you MEAN? или введение в Fullstack JavaScriptWhat do you MEAN? или введение в Fullstack JavaScript
What do you MEAN? или введение в Fullstack JavaScript
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014
 
Ruby gui
Ruby guiRuby gui
Ruby gui
 
Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
 

Andere mochten auch

Lily Character Mirrored Presentation
Lily Character Mirrored PresentationLily Character Mirrored Presentation
Lily Character Mirrored Presentation
Benjamin Pope
 
Partnership at Life-Book
Partnership at Life-BookPartnership at Life-Book
Partnership at Life-Book
Life-Book
 

Andere mochten auch (11)

Lily Character Mirrored Presentation
Lily Character Mirrored PresentationLily Character Mirrored Presentation
Lily Character Mirrored Presentation
 
620-HCD-2016 Proyecto de Decreto: campaña de prevención incorporada a la paut...
620-HCD-2016 Proyecto de Decreto: campaña de prevención incorporada a la paut...620-HCD-2016 Proyecto de Decreto: campaña de prevención incorporada a la paut...
620-HCD-2016 Proyecto de Decreto: campaña de prevención incorporada a la paut...
 
Biography personnel of linkin park
Biography personnel of linkin parkBiography personnel of linkin park
Biography personnel of linkin park
 
KW Proposal
KW ProposalKW Proposal
KW Proposal
 
Partnership at Life-Book
Partnership at Life-BookPartnership at Life-Book
Partnership at Life-Book
 
Impacto de las tic
Impacto de las ticImpacto de las tic
Impacto de las tic
 
Digital printing machinery
Digital printing machineryDigital printing machinery
Digital printing machinery
 
Mapa conceptual de Proteínas
Mapa conceptual de ProteínasMapa conceptual de Proteínas
Mapa conceptual de Proteínas
 
Lab Report #2
Lab Report #2Lab Report #2
Lab Report #2
 
Senior_Network_Engineer
Senior_Network_EngineerSenior_Network_Engineer
Senior_Network_Engineer
 
Función del lenguaje que practico: Amistad
Función del lenguaje que practico: AmistadFunción del lenguaje que practico: Amistad
Función del lenguaje que practico: Amistad
 

Ähnlich wie Проблемы при работе с разными версиями Ruby и разными gem

CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
Roman Pavlushko
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
Provectus
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
Alex Chistyakov
 

Ähnlich wie Проблемы при работе с разными версиями Ruby и разными gem (16)

CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали Групон
 
Docker-контейнеризация: от local до production
Docker-контейнеризация: от local до productionDocker-контейнеризация: от local до production
Docker-контейнеризация: от local до production
 
Vagrant puppet
Vagrant puppetVagrant puppet
Vagrant puppet
 
Migrate!
Migrate!Migrate!
Migrate!
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
 
Varnish and Drupal.
Varnish and Drupal.Varnish and Drupal.
Varnish and Drupal.
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012AVITO. Решардинг Redis без даунтайма. DevConf 2012
AVITO. Решардинг Redis без даунтайма. DevConf 2012
 
My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014
 
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
Практическое применение WebWorkers / Алексей Фомкин (Data Monsters)
 
Тестирование серверной конфигурации
Тестирование серверной конфигурацииТестирование серверной конфигурации
Тестирование серверной конфигурации
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
 
Ror - The Beginning
Ror - The BeginningRor - The Beginning
Ror - The Beginning
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
SaltStack vs Chef, HappyDev 2013
SaltStack vs Chef, HappyDev 2013SaltStack vs Chef, HappyDev 2013
SaltStack vs Chef, HappyDev 2013
 

Mehr von Александр Ежов

Mehr von Александр Ежов (20)

Кеширование данных в БД
Кеширование данных в БДКеширование данных в БД
Кеширование данных в БД
 
Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015
 
Rails 5: awesome features and breaking changes
Rails 5: awesome features and breaking changesRails 5: awesome features and breaking changes
Rails 5: awesome features and breaking changes
 
Big Data и Ruby
Big Data и RubyBig Data и Ruby
Big Data и Ruby
 
Abstract machines for great good
Abstract machines for great goodAbstract machines for great good
Abstract machines for great good
 
Rubt on Rails: 1000 запросов в секунду
Rubt on Rails: 1000 запросов в секундуRubt on Rails: 1000 запросов в секунду
Rubt on Rails: 1000 запросов в секунду
 
Liquor, Liquid и другие безопасные языки разметки в RoR
Liquor, Liquid и другие безопасные языки разметки в RoRLiquor, Liquid и другие безопасные языки разметки в RoR
Liquor, Liquid и другие безопасные языки разметки в RoR
 
Vim or die
Vim or dieVim or die
Vim or die
 
Capistrano Rails
Capistrano RailsCapistrano Rails
Capistrano Rails
 
Умное кэширование в Rails
Умное кэширование в RailsУмное кэширование в Rails
Умное кэширование в Rails
 
Sphinx как база данных
Sphinx как база данныхSphinx как база данных
Sphinx как база данных
 
Emacs и Rails
Emacs и RailsEmacs и Rails
Emacs и Rails
 
Антикризисная презентация
Антикризисная презентацияАнтикризисная презентация
Антикризисная презентация
 
Eventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийEventmachine: структура evented-приложений
Eventmachine: структура evented-приложений
 
Дэдлоки
ДэдлокиДэдлоки
Дэдлоки
 
Обзорное сравнение серверов приложений для Rails
Обзорное сравнение серверов приложений для RailsОбзорное сравнение серверов приложений для Rails
Обзорное сравнение серверов приложений для Rails
 
Приложения в плагинах
Приложения в плагинахПриложения в плагинах
Приложения в плагинах
 
Использования PgQ и Londste в rails-приложении
Использования PgQ и Londste в rails-приложенииИспользования PgQ и Londste в rails-приложении
Использования PgQ и Londste в rails-приложении
 
Масштабирование в Rails
Масштабирование в RailsМасштабирование в Rails
Масштабирование в Rails
 
Интернационализация и локализация Ruby on Rails. gem russian
Интернационализация и локализация Ruby on Rails. gem russianИнтернационализация и локализация Ruby on Rails. gem russian
Интернационализация и локализация Ruby on Rails. gem russian
 

Проблемы при работе с разными версиями Ruby и разными gem