GNU/Linux >> Znalost Linux >  >> Linux

Jak na to:Použití Bundleru ke správě Ruby Gems

Úvod

Jak aplikace Ruby rostou, počet externích knihoven, které tyto aplikace používají, může růst stejnou rychlostí – ne-li rychleji, v některých případech. Tento růst může představovat problémy, když drahokamy instalují své závislosti. Pokud dva drahokamy spoléhají na různé verze stejné knihovny, pak při instalaci obou drahokamů existuje riziko vytvoření chybového scénáře kvůli nekompatibilitě drahokamů. Bundler, drahokam Ruby, vám poskytuje snadný způsob, jak tento drahokam spravovat a vyhnout se konfliktům, což vám umožní soustředit se na kód vaší aplikace namísto řešení problémů s knihovnami podpory..

Předpoklady

  • Verze Ruby – 2.2.1 nebo novější

Poznámka:Tento článek používá vim pro úpravy textu. Pokud dáváte přednost použití jiného nástroje pro úpravu textu, nahraďte „vim“ vámi zvoleným editorem. (A pokud se náhodou ocitnete uvízlí ve vim, zde je několik tipů, které vám pomohou se odlepit.)

.

Správa komplexních vzájemných závislostí

Jak bude vaše aplikace narůstat ve složitosti, můžete v sadě své aplikace zaznamenat konflikty verzí. Tyto konflikty mohou bránit správnému fungování vaší aplikace, protože počet drahokamů, které používáte – a počet vzájemných závislostí drahokamů – roste. Můžete zvážit použití RVM restriktivnějším způsobem, ale toto řešení vám dává pouze příležitost ovládat aktuální verzi Ruby a související sadu drahokamů – neřeší problémy se závislostí drahokamů, které se mohou vyskytnout mezi různými verzemi drahokamů používajících stejnou základní verzi. jazyk Ruby. Procházení závislostí všech drahokamů za účelem nalezení těchto konfliktů a stažení kompatibilních verzí drahokamů je dlouhý a únavný proces. Naštěstí můžeme použít drahokam Bundler ke správě našich sad drahokamů a vyhnout se dohadům při používání sdílených knihoven.
.

Instalace Bundleru pro správu drahokamů

Abychom mohli začít s Bundlerem, musíme nejprve nainstalovat drahokam:

gem install bundler

Všimněte si, že některé verze Ruby mohou používat formulář gem2.2 install bundler .

Tento příkaz nainstaluje Bundler do aktuálního spouštěcího prostředí Ruby. Dále musíte vytvořit Gemfile pro správu drahokamů vaší aplikace. Přidejte nový soubor do kořenového adresáře aplikace a otevřete jej pro úpravy:

vim Gemfile

Poznámka:Bundler ve výchozím nastavení hledá název souboru Gemfile , velkými písmeny přesně tak, jak je uvedeno. Selže, například pokud jste místo toho pojmenovali soubor gemfile .

V tomto okamžiku můžete přidat své drahokamy nebo ponechat soubor prázdný, pokud nemáte žádné externí závislosti na drahokamu. Bundler používá tento Gemfile při stahování a instalaci drahokamů pro vaši aplikaci.
.

Anatomie souboru drahokamů

Gemfile vám nabízí mnoho různých způsobů, jak spravovat sady drahokamů vaší aplikace. Můžete například zadat nový zdroj drahokamů ve svém Gemfile, který bude prohledán při spuštění instalace:

source 'https://rubygems.org'

Nové závislosti drahokamů můžete snadno přidat tak, že je umístíte na jednotlivé řádky, před kterými bude slovo gem . Například následující řádek specifikuje nokogiri jako drahokamová závislost pro vaši aplikaci:

gem 'nokogiri'

Můžete také určit konkrétní verze drahokamů pomocí známé syntaxe RubyGems. Následující řádek přidává drahokam Rails, ale omezuje jej na verzi Rails 3.0.0.beta3:

gem 'rails', '3.0.0.beta3'

Můžete také určit skupiny drahokamů, které běží pouze ve specifických prostředích. Například následující blok nainstaluje rspec , guard a factory_girl když je prostředí Rails buď test nebo development :

group :test, :development do
    gem 'rspec'
    gem 'guard'
    gem 'factory_girl'
end

Tyto příklady jsou pouze začátek. Na bundler.io je řada dalších užitečných funkcí Gemfile.
.

Instalace všech drahokamů pomocí Bundler

Jakmile naplníte svůj Gemfile drahokamy k instalaci, můžete nainstalovat všechny drahokamy svého aktuálního prostředí pomocí následujícího příkazu:

bundle install

Tento příkaz analyzuje váš Gemfile a sleduje všechny označené drahokamy ze zdrojů dostupných jak ve vašem systému, tak v samotném Gemfile. Prozkoumá všechny drahokamy na sdílené závislosti a poté vygeneruje nový soubor (Gemfile.lock ), který obsahuje všechny kompatibilní drahokamy a jejich verze. Nakonec se pohybuje přes vytvořený Gemfile.lock soubor, nainstalujte každý příslušný drahokam. Po dokončení budou drahokamy vaší aplikace k dispozici pro použití v kódu aplikace.
.

Další užitečné příkazy Bundler

Kromě odstranění všech starostí ze správy drahokamů se sdílenými závislostmi vám Bundler také poskytuje několik dalších nástrojů, pomocí kterých můžete spravovat sadu drahokamů vaší aplikace. Níže je několik příkladů příkazů, které se vám mohou hodit během vývoje:

Chcete-li aktualizovat všechny drahokamy v Gemfile na nejnovější kompatibilní verzi:

bundle update

V produkčních prostředích můžete místo dynamického řešení drahokamů ze všech dostupných zdrojů nainstalovat pouze drahokamy specifikované v Gemfile.lock.

bundle install --deployment

Chcete-li spustit příkaz v kontextu souboru Gemfile aplikace:

bundle exec XXXX

Bez přidání bundle exec , příkaz XXXX by běžel v systémovém kontextu Ruby, který může obsahovat nekompatibilní drahokamy.

Zde si můžete prohlédnout další dostupné příkazy a jejich zamýšlené použití.
.

Závěr

Běžným problémem mezi programovacími jazyky je koncept „pekla závislosti“, který vzniká, když dvě nebo více knihoven třetích stran spoléhají na různé verze stejné sdílené knihovny. Bundler poskytuje vývojářům Ruby snadno použitelný nástroj pro instalaci i správu složitých sad drahokamů. Pomáhá vyřešit všechny problémy se závislostmi a poskytuje vám záznam kompatibility pro všechny závislosti vaší aplikace. Pomocí Bundleru můžete rychle vyřešit konflikty ve spotřebovaných drahokamech a vrátit se k práci na obsahu kódu vaší aplikace.

Atlantic.Net

Atlantic.net nabízí hosting VPS a také spravované hostingové služby, které zahrnují vrstvu základních spravovaných služeb pro vaše hostingové balíčky. Kontaktujte nás ještě dnes pro více informací.

.
.


Linux
  1. Raspberry Pi Firewall:Jak jej nainstalovat a spravovat pomocí UFW

  2. Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

  3. Jak nainstalovat Ruby Gems v cPanel

  1. Jak spravovat balíčky NodeJS pomocí Npm

  2. Jak graficky spravovat oprávnění Flatpak pomocí Flatseal

  3. Jak na to:Přidání rubínových drahokamů a zdrojů drahokamů

  1. Jak spravovat vzdáleného hostitele Windows pomocí Ansible

  2. Jak spravovat kontejnery Docker pomocí Portainer na Ubuntu

  3. Jak vytvořit plně vybavený poštovní server pomocí pošty