SoftwareCollections.org je projekt, který umožňuje správu softwarových kolekcí. Pro distribuce, na které se softwarové kolekce instalují, se tak může stát upstreamem, který dané kolekce udržuje. Stránky navíc obsahují adresář pro snadnou orientaci v dostupných kolekcích. Přečtěte si o softwarových kolekcích a SoftwareCollections.org více.

Už více než dva roky je v distribuci Fedora balíček scl-utils, který pomocí speciálních maker umožňuje změnit instalační cesty balíčku tak, aby mohl fungovat paralelně s jinou verzí daného programu nebo aplikace. Zároveň obsahuje i nástroj scl, který pro danou kolekci nastaví prostředí a spustí zvolený příkaz. Pro distribuci Red Hat Enteprise Linux vyšel v roce 2012 produkt nazvaný Developer Toolset, který ukázal, k čemu se kolekce mohou hodit. Cílem bylo dát uživatelům k dispozici novější verzi překladače gcc a dalších nástrojů tak, aby mohli na dané verzi distribuci vyvíjet aplikací i pro verzi novější. O něco později byl vydán i další produkt – Red Hat Software Collections, který se zaměřil na dynamické jazyky jako Ruby a Python a nové verze databází.

Díky kolekcím je tak možné na systém, kde z důvodu dlouhodobé podpory není možné instalovat novější verze aplikací (databází, překladačů atd.) tyto aplikace nainstalovat a používat paralelně s verzí originální. Ve Fedoře je tento problém někdy opačný. Některé programy jsou příliš nové a je potřeba sáhnout po starší verzi. Kde ale takovéto kolekce najít? Na SoftwareCollections.org samozřejmě! SoftwareCollections.org je webový portál pro vytváření, hostování a správu uživatelských softwarových kolekcí pro RHEL, CentOS a Fedoru, který zároveň obsahuje detailní dokumentaci pro používání, správu a vytváření kolekcí.

Co najdete na SoftwareCollections.org

Jak už bylo zmíněno, softwarové kolekce se nejdříve objevily pro Red Hat Enteprise Linux. Například v Red Hat Software Collections v současné době najdete různé verze Ruby (1.9.3 a 2.0), Python 2.7, MariaDB 5.5, Node.js 0.10 a další. Existuje i verze RHSCL pro CentOS. Pro kolekce ale neexistuje upstream a dále se zatím nerozšiřují. Jsou vlastně stranou všech distribucí, protože jejich cílem je vždy nabídnout “něco jiného”. Proto vznikl projekt SoftwareCollections.org, který umožňuje komunitám jednoduše spravovat vlastní kolekce a zároveň funguje jako upstream pro projekty využívající kolekce. Je nezávislý na distribuci Fedora, protože kolekce jsou určené nejen pro Fedoru, ale i pro RHEL (Enterprise Linux) a CentOS.

SoftwareCollections.org je úzce spojený s projektem COPR. O COPRu už zde bylo psáno (http://mojefedora.cz/stitek/copr/), proto jen velmi krátce. COPR je služba pro sestavení balíčků pro několik distribucí a několik jejich verzí. Výsledkem je privátní repozitář, ze kterého může uživatel stáhnout například testovací balíček. COPR však umožňuje i sestavit balíčky, které mají správně modifikovaný SPEC soubor (soubor s metadaty pro sestavení balíčku) pro kolekci. Takovouto kolekci pak stačí importovat na SoftwareCollections.org a začít spravovat.

Na webu naleznete veškerou dokumentaci. Od prvního kroku, kterým je modifikace zdrojového balíčku, přes sestavení balíčku až po jeho zveřejnění. Samozřejmostí je mailing list, kde vám poradí s případnými problémy.

Chci začít používat kolekci

Pro používání softwarových kolekcí stačí nainstalovat balíček scl-utils, který je k dispozici v repozitáři Fedory, CentOSu a Enterprise Linuxu. Ze seznamu kolekcí (https://www.softwarecollections.org/en/scls/) pak vyberte tu, kterou chcete používat, a nainstalujte RPM pro svoji distribuci. Například Pavel Raiskup vytvořil kolekci s git verzí projektu autotools

$ su -c "yum install https://www.softwarecollections.org/en/scls/praiskup/autotools/fedora-20-x86_64/download/praiskup-autotools-fedora-20-x86_64-1-1.noarch.rpm"

Tím jsme nainstalovali pouze nové repo a je potřeba nainstalovat i celou kolekci:

$ sudo -c "yum install autotools-latest"

Nyní stačí kolekci aktivovat a začít používat. Máme možnost spustit nový bash s prostředím definovaným kolekcí:

$ scl enable autotools-latest bash

nebo rovnou zavolat příkaz v rámci kolekce:

$ scl enable autotools-latest 'rpmbuild --rebuild *.src.rpm'

Stejným způsobem lze pracovat i s dalšími kolekcemi, které na SoftwareCollections.org najdete. V současné době v přehledu kolekcí naleznete hlavně novější verze aplikací, které nejsou k dispozici pro RHEL6 a CentOS6, existují už ale i kolekce pro Fedoru a určitě se brzo objeví další pro Red Hat Enterprise Linux 7. Více informací, jak o používání kolekcí, tak o jejich vytváření naleznete v dokumentaci (https://www.softwarecollections.org/en/docs/).