Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Utilitky pro Ruby: balíčkovací systém RubyGems

Jak programovat v Ruby a v Ruby on Rails si můžete přečíst všude. Ruby má ale také spoustu pomocných utilitek, jako je třeba balíčkovací nebo buildovací systém, o kterých se moc nepíše. Přitom právě ony dělají vývoj mnohem snazší a příjemnější. A co vy — znáte je?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Co jsou to RubyGems?

RubyGems jsou balíčkovací systém pro Ruby. Díky RubyGems můžete snadno instalovat jak knihovny pro Ruby, tak další s Ruby spřízněný software, jako je například utilitka Rake, deployovací nástroj Capistrano, webový server Mongrel nebo framework Ruby on Rails. RubyGems jsou napsány v Ruby, jsou tedy multiplatformní a můžete si jejich schopností vychutnat jak pod Linuxem, tak ve Windows či u rubyistů tak populárním Mac OS X. Jedná se o dosti sofistikovaný apt-like balíčkovací systém, který vám umožní instalaci knihovny v určité verzi či rovnou několika různých verzích dle vašich požadavků. Že RubyGems podporují závislosti myslím ani není třeba říkat.

Již jen dodám, že kýžený balíček se jmenuje rubygems a vlastní program se pak volá gem. Pojďme si to nyní vyzkoušet prakticky!

Instalujeme software s RubyGems…

Pro zkušené linuxáky jistě nebude žádným překvapením, že pro instalaci software jsou třeba rootovská práva. Je tomu tak proto, že požadovaný software je instalován do složky /usr/lib/ruby/gems/<major_verze_ruby>, čili při dnešním Ruby 1.8.6 se použije složka /usr/lib/ruby/gems/1.8. Takto je tomu defaultně, nicméně není problém používat RubyGems pod neprivilegovaným uživatelem či jen instalovat software jinam (stačí nastavit proměnnou prostředí GEM_HOME). Ale dost již bylo řečí, jdeme na to:

gem install rails

Při zadání zmíněného příkazu dostanete na výběr různé verze Ruby on Rails, které jsou na serveru dostupné. Volbou verze a souhlasem s nainstalováním závislostí se vám nainstaluje balíček do systému.

Verzi můžeme rovnou specifikovat, a to pomocí gem install <balik>-<verze>. RubyGems jsou však opravdu sofistikovaný systém, a proto můžeme chtít například balíček verze 0.0.2 nebo vyšší, což provedeme pomocí:

gem install -r progressbar --version '> 0.0.2'

Vyhledávání

Vyhledávání se odvíjí od vypsání seznamu všech dostupných gemů pomocí gem query --remote či chcete-li zkráceně, pak gem q -R. Pustíte-li tento příkaz, uvidíte, že na nedostatek gemů si stěžovat opravdu nelze.

K nalezení konkrétního balíčku použijeme gem query --remote --name-matches <vyraz>. Použít můžete i regulární výrazy.

Informace o balíčku

Kompletní metadata balíčku lze vypsat příkazem gem specification <balicek>. O metadatech si povíme více v příštím dílu, kdy se budeme věnovat maintainerskému pohledu na RubyGems.

Upgrade

Jak jste viděli, inspirace debianím apt je jistě nepopiratelná. U upgrade bude však výjimka – na gem update && gem upgrade zapoměňte, upgrade zajišťuje pouhé gem update.

Nechceme-li upgradovat všechny balíčky, lze pomocí gem update <balik> aktualizovat pouze zvolený software či si můžete pomocí gem outdated nechat vypsat neaktuální balíčky.

Odebrání balíčku

K odebrání balíčku slouží gem uninstall. Máme-li v systému nainstalovaných verzí více, dostaneme na výběr, kterou verzi že si to přejeme odinstalovat. Závisí-li na balíčku nějaké závislosti, budeme na ně upozorněni.

Lokální balíčky

Příkaz gem query --local nebo též gem q -L vypíše lokálně instalované balíčky.

Že lokální či vzdálené balíčky lze odlišit volbami --local či --remote, vám jistě neuniklo. Užitečné je vědět, že pokud není žádná z těchto voleb uvedena, zkouší se zpravidla obě uvedené varianty, s tím, že přednost mají lokální akce.

Shrnutí příkazů aneb tahák to jistí

Činnost Příkaz
Instalace gem install <balicek>
Vyhledávání gem q -R <vyraz>
Odinstalování gem uninstall <balicek>
Vypsání metadat gem specification <balicek>
Aktualizace balíčků gem update

Konfigurační soubor

Na mnohé volby se vyplatí mít aliasy, s tím si ale už jistě poradíte sami. Zajímavější je, že i RubyGems mají svůj vlastní konfigurační soubor. Jmenuje se logicky ~/.gemrc a jedná se o klasický YAML.

Pokud například chcete, aby se některé akce spouštěly vždy, lze to specifikovat ve volbě gem takto:

gem: --gen-rdoc --run-tests

Výše uvedeným zápisem dosáhneme toho, že při každé instalaci automaticky necháme proběhnout jednotkové testy a vygenerujeme dokumentaci pomocí RDoc.

Tolik namátkou, dále zde mohou být například parametry RDoc nebo určení GEMPATH, pro podrobnosti vizte manuál.

TIB2012

       

Příště

Dnešní část byla uživatelská, příští tedy bude programátorská a maintainerská. Řekneme si jak o psaní programů s využitím knihoven dostupných z lokálního RubyGems repozitáře, tak také něco více o formátu gemovských balíčků a naučíme se dělat vlastní balíčky.

Máte-li návrhy na další verze seriálu, budou jedině vítány. Zatím je naplánován buildovací systém Rake, řeč přijde také na dokumentační utilitky ri a RDoc, utilitky pro distribuci Tar2RubyScript, AllInOneRuby a možná RubyScript2exe. Také uvažuji říci pár slov o webovém serveru Mongrel. Máte-li nějaká přání, pište do diskuse. Bude-li to v mých silách, rád o požadované problematice napíši.

Odkazy

Jakub Šťastný

Jakub Šťastný

Jakub Šťastný byl v letech 2007 až 2008 redaktorem serveru Root.cz. Mezi jeho zájmy patří Linux, programování a typografický systém TeX.

Školení: Zavedení Google Apps do firmy

Cílem školení je provést účastníky jednotlivými kroky zavedení Google Apps na vlastní doménu a seznámit je se základy administrace, aby byli schopni Google Apps sami udržovat a rozvíjet dle potřeb. Účastníci se také dozví, jak používat základní služby v balíku Google Apps (Gmail, Kalendář, Dokumenty a Weby Google) a jaké jsou možnosti jejich využití ve firmě.

Podrobnější informace a přihláška  

Ohodnoťte jako ve škole:
Průměrná známka 2,94

Přehled názorů

:-)
Oldřich Šmehlík 2. 7. 2007 04:44
Nový
└ 
Re: :-)
Jakub Šťastný 2. 7. 2007 04:58
Nový
 
└ 
Re: :-)
anonymní uživatel 2. 7. 2007 05:51
Nový
 
 
├ 
Re: :-)
Oldřich Šmehlík 2. 7. 2007 05:52
Nový
 
 
├ 
Re: :-)
Jakub Šťastný 2. 7. 2007 05:55
Nový
 
 
└ 
Re: :-)
snek 3. 7. 2007 13:19
Nový
Korektorka má dovolenou?
mys elf 2. 7. 2007 06:44
Nový
└ 
Re: Korektorka má dovolenou?
Věra Rybářová 2. 7. 2007 08:30
Nový
 
└ 
Re: Korektorka má dovolenou?
mys elf 3. 7. 2007 00:21
Nový
 
 
└ 
Re: Korektorka má dovolenou?
Jakub Šťastný 3. 7. 2007 04:25
Nový
 
 
 
├ 
Re: Korektorka má dovolenou?
Oldřich Šmehlík 3. 7. 2007 06:29
Nový
 
 
 
│
└ 
Re: Korektorka má dovolenou?
Jakub Šťastný 3. 7. 2007 08:37
Nový
 
 
 
│
 
└ 
Re: Korektorka má dovolenou?
anonymní uživatel 3. 7. 2007 10:44
Nový
 
 
 
│
 
 
└ 
Re: Korektorka má dovolenou?
Oldřich Šmehlík 3. 7. 2007 10:45
Nový
 
 
 
├ 
Re: Korektorka má dovolenou?
mys elf 3. 7. 2007 07:30
Nový
 
 
 
│
└ 
Re: Korektorka má dovolenou?
Jakub Šťastný 3. 7. 2007 08:40
Nový
 
 
 
└ 
Re: Korektorka má dovolenou?
mys elf 3. 7. 2007 07:35
Nový
gems a RUDL
Jakub Pavlík 14. 7. 2007 13:19
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem