Ruby Version Manager

Ruby Version Manager (часто скорочується до абревіатури RVM) - це засіб командного рядка, який дозволяє легко встановлювати, керувати та працювати з декількома середовищами Ruby. Середовище Ruby включає: Ruby інтерпретатор, встановлені RubyGem’и та документацію. Тут є можливість перемикатися від одної версії Ruby до іншої, це дає можливість розробнику працювати над декількома проєктами з різними вимогами до версій. На додаток до MRI, стандартного інтерпретатора Ruby, RVM слугує для установки інших реалізацій Ruby. До них належать JRuby, MacRuby, IronRuby, Maglev, Rubinius, Ruby, Enterprise Edition, Topaz.

Ruby Version Manager
Файл:Rvm.png
Автор(и) Вейн Сегуін, Міхал Папіс
Перший випуск 2009
Стабільний випуск 1.26.11 (31 березня 2015 (2015-03-31))
Версії 1.29.12 (15 січня 2021)[1]
Репозиторій github.com/rvm/rvm
Операційна система UNIX-подібні
Мова програмування Bash, Ruby
Доступні мови Англійська
Українська Ні
Ліцензія Apache License 2.0
Вебсайт rvm.io

Основні завдання

  • Фізичне розділення версій Ruby та наборів Gemset’ів
  • Спроможність мати кілька версій Ruby та перемикатися я між ними
  • Спроможність для кожної з версії Ruby мати свій набір Gemset’ів та перемикатися між ними

Підтримка проєкту співтовариством

RVM підтримується співтовариством за допомогою звернень до сховища проєкту, яке розташоване на GItHub

Підтримка користувачів

Користувачі RVM мають змогу отримати допомогу від співтовариства за допомогою групи Google Mailing List або у режимі реального часу через RVM IRC канал.

Провадження

RVM дозволяє розгортати кожен проєкт зі своїм власним, повністю самодостатнім та спеціалізованим середовищем обраною версією Ruby та наборі gemset'ів. Обраний набір gemset'ів дозволяє уникнути конфліктів між версіями проєктів, які приводять до помилок трасування та забирають багато часу на їх усунення. RVM не встановлює інших gem’ів, крім тих які є необхідними. Це робить роботу з декількома складними проєктами, де кожен має довгий список залежностей gem’ів, більш ефективною. RVM дозволяє легко перевіряти оновлення gem’ів. Засіб є досить гнучким, що дозволяє підтримувати набір gem’ів у кожному окремому середовищі.

Розробка

За допомогою API командного рядка, RVM зменшує складність багатьох аспектів Ruby розробки. З RVM, ви можете мати ідентичні середовища для розробки, тестування та провадження. Тут немає прихованих підводних каменів, якщо проєкт працює на одному з них, він буде працювати на всіх. За допомогою gemset’ів ви маєте змогу безпечно та відразу транспортувати зміни з одного середовища в інше. RVM призначений і для Ruby, а не тільки для Rails. Кожний проєкт заснований на Ruby виграє від використання RVM.

Тестування

RVM спрощує тестування, тут є можливість запускати набір тестів, Rack завдання, контрольні точки та команди gem’ів з різних версій Ruby одночасно. Це означає, що ви можете легко переконатися, що ваші програми працюють в Ruby, 1.8.x, РЗЕ, МРТ 1.9.1, JRuby і т.д ... та швидко виявити будь-які області, в яких вони не працюють.

Управління Gem'ами

RVM має дуже гнучку систему управління Gem'ами під назвою Named Gem Sets. Для Gemset’ів в RVM управління Gem'ами у різних версіях Ruby не проблема. RVM дозволяє додати невеликий текстовий файл в сховище вашого проєкту, замість перевірки безлічі gem’ів, які можуть призвести до непотрібного збільшення розміру сховища. Крім того, управління Gem'ами в RVM використовує загальний кеш каталог так, що тільки одна завантажена версія кожного Gem'а знаходиться на диску.

RVM допомагає впевнитися, що всі аспекти Ruby повністю знаходяться в просторі користувача та добре захищені від використання з поза головного сховища. Використання Ruby RVM'ом, таким чином, забезпечує більш високий рівень безпеки системи і, отже, знижує ризики. Крім того, оскільки всі процеси виконуються на рівні користувача, пошкоджений Ruby процес не може поставити під загрозу всю систему.

Посилання

  1. Release 1.29.12 — 2021.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.