výběr nástroje pro správu verzí Ruby: rbenv vs RVM

výběr nástroje pro správu verzí Ruby často sestává ze dvou hráčů: rbenv a RVM. Ten byl široce přijímán jako norma, a to díky své široké sadě nástrojů. Rbenv se však svým lehkým přístupem stal silným uchazečem.

pod kapotou

jak tedy tyto nástroje provedou práci? To je místo, kde se věci s RVM trochu děsí. RVM přepíše příkaz shellu cd, aby načetl aktuální proměnné prostředí Ruby. Přepsání může nejen způsobit neočekávané chování, ale také to znamená, že rubíny a drahokamy jsou načteny při přepínání adresářů.

rbenv dělá věci za běhu pomocí podložky k provádění příkazů.

* na přední stranuPATH je vložen adresář podložek (~/.rbenv/shims).
* adresář obsahuje podložku pro každý příkaz Ruby.
* operační systém vyhledá shim, který odpovídá názvu příkazu, který jej následně předá rbenv a určí verzi Ruby, která se má spustit.

konfigurace rbenv pro aplikaci je jednoduchá:

# .ruby-version
2.3.0

proměnná RBENV_VERSION také usnadňuje rychlé zadání verze Ruby pomocí příkazového řádku. Je to první v řadě, když rbenv kontroluje aktuální verzi Ruby.

delegování pracovní zátěže

v RVM je několik funkcí, díky nimž je těžší nástroj. RVM přichází s vlastním instalačním mechanismem Ruby:

rvm install ruby-2.3.0

s rbenv, můžete buď nainstalovat Ruby sami (uložením do ~/.rbenv/versions) nebo využít ruby-build, plugin, který bude instalovat verze pro vás. Stejně jako rbenv má ruby-build recept na domácí vaření.

brew install ruby-build
rbenv install 2.3.0

RVM dává možnost oddělit závislosti podle projektu s gemsets. Gemsety, nicméně, jsou spíše minulostí, díky rozšířenému používání Bundler.

s Bundler, jeden může snadno spravovat drahokamy pro projekt.

gem install bundler

# Gemfile in root of application
source 'https://rubygems.org'

gem 'rails'
gem 'rspec'

bundle install

ačkoli většina projektů nyní používá Bundler, plugin rbenv-gemsets je ekvivalentem gemsetů rbenv.

Light is Might

zatímco univerzálnost RVM může být vynalézavá, pokud jde o správu verzí Ruby, může být přehnaná. Použití rbenv vám umožní udržet věci jednoduché a nechat jiné nástroje zpracovat další aspekty procesu. primární zaměření rbenv na Ruby versioning vede k nastavení a konfiguraci šetrnější k dev. S našimi aplikacemi používáme rbenv již několik let. Ve spolupráci s Capistrano, rbenv-capistrano dělá Ruby verze údržba pro naše nasaditelné prostředí Jednoduché.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.