Hlavní navigace

Bedrock Linux kombinuje výhody ostatních distribucí

7. 8. 2012
Doba čtení: 6 minut

Sdílet

Linuxových distribucí existují stovky, protože každý potřebuje trochu něco jiného. Někdo chce neměnné prostředí s dlouhou podporou, jiný chce zase nejnovější software a aktualizace každý den. Jeden chce mít všechno připravené, jiný si chce sám připravit vše podle sebe. Univerzální přístup nabízí Bedrock.

Univerzálních distribucí už tu bylo několik, žádná z nich se ale nedočkala většího rozšíření. Přestože uživatelé často mluví o tom, že je distribucí příliš mnoho a mělo by dojít k nějakému sjednocení, v praxi se chovají obráceně. Mají své oblíbené distro, na které nedají dopustit a vyzdvihují jeho výhody.

Proto tu máme několik různých kategorií linuxových distribucí a podle našich konkrétních potřeb mezi nimi volíme. Na webu distribuce Bedrock, o které vlastně tento článek je, se docela hezky dočteme, jak může tato volba vypadat. Chcete…

  • něco stabilního jako Debian nebo Red Hat Enterprise Linux či některý z jeho klonů?
  • něco nabitého novinkami jako Arch, Debian Sid, nebo Fedora Rawhide?
  • něco přizpůsobitelného jako Gentoo či Linux From Scratch?
  • něco minimalistického jako Tinycore nebo SliTaz?
  • něco uživatelsky přívětivého jako Mint?
  • něco populárního s velkým množstvím software jako Ubuntu?

Podle tvůrce distribuce Bedrock je volba vhodného systému vždy otázkou kompromisů. Musíme se rozhodnout, které vlastnosti jsou pro nás skutečně klíčové a čeho jsme ochotni se kvůli nim vzdát. Co když chcete všechno? Stabilitu i progresivitu, přizpůsobitelnost i minimalističnost s přístupem k mnoha balíčkům? Odpověď prý existuje: Bedrock.

Bedrock na to jde po svém

Tvůrce Bedrocku tvrdí, že jeho distribuce řeší spoustu problémů, které se vyskytují jinde. Typickým problémem jsou třeba různé verze důležitých knihoven. Pokoušíte se nainstalovat novou komerční hru a zjistíte, že vaše knihovny pro práci s 3D jsou příliš staré. Váš kamarád má Arch a tomu to taky nefunguje, protože jeho knihovny jsou zase příliš nové. Jste v pasti.

Bedrock řeší podobné věci svérázným způsobem: Byla ta hra testována na Ubuntu a jinde funguje špatně? Použijte příslušné knihovny z Ubuntu, nainstalujte je do Bedrocku a jedeme. Nebo to zrovna nefunguje v Ubuntu, ale v Debianu to běželo lépe, nainstalujte balíčky třeba odtud.

Funguje to tak, že Bedrock si na svém svazku udržuje prostředí ostatních distribucí v podadresáři /var/chroot/. Tato distribuční prostředí pak nazývá „klienty“ a umí v nich spouštět aplikace stejně, jako by běžely ve svých standardních systémech. Pro přechod mezi klienty využívá klasický chroot. Využívá ovšem implementaci nazvanou capchroot, která ke své práci nevyžaduje oprávnění roota.

Aplikace je tak uzavřena ve svém známém prostředí a využívá ty správné knihovny a další programy. Mezi jednotlivými klienty je ale třeba sdílet také některá data, například uživatelský adresář, konfiguraci aplikací a podobně. K tomu Bedrock využívá bind mount. Tedy možnost připojit libovolný adresář do jiného adresáře. Funguje to napříč chrooty, takže i když si spustíte třeba Firefox z Ubuntu, budete mít k dispozici stejné záložky a historii prohlížení, jako byste si pustili Firefox z Archu.

Aby byla práce se systémem transparentní a uživatel se nemusel neustále zabývat tím, který program pouští ve kterém prostředí, používá Bedrock ještě jeden trik: dynamický PATH. Obsah proměnné PATH za normálních okolností určuje, ve kterých adresářích má systém hledat program, který právě chcete spustit. Bedrock ovšem tento přístup přiohnul tak, aby bylo možné z jednoho prostředí pohodlně spustit aplikaci v jiném prostředí. Nemusíte se tak starat o to, které programy máte ve kterém klientovi. Pokud tedy v Bashi v Debianu napíšete firefox, klidně se vám spustí Firefox, který jste předtím nainstalovali do Archu.

Celé to tedy částečně připomíná virtualizované prostředí s mnoha distribucemi. Výhodou bedrockovského přístupu je ale už zmíněná transparentnost. Můžete si spustit několik různých grafických aplikací a pracovat s nimi vedle sebe na jednom desktopu, aniž si všimnete, že každá z nich běží z jiného prostředí a využívá třeba jiné verze knihoven. Můžete tak perfektně kombinovat výhody a aplikace z různých systémů.

Můžete tak například téměř všechno provozovat ve svém oblíbeném Gentoo a jen jeden program nechat běžet z Debianu nebo třeba RHEL. Nebo můžete naopak používat primárně prostředí Debianu, ale jednu zásadní aplikaci si upravit, opatchovat a se zvláštními parametry zkompilovat v Gentoo. Možnosti kombinací jsou téměř neomezené.

Bedrock je vlastně jen platforma

Z výše uvedeného plyne, že Bedrock toho nemusí umět příliš mnoho. Jeho úkolem je nabootovat, připravit hardware a prostředí a zbytek už přenechat jednotlivým klientům. Ovšem základní operace by v něm mělo být možné udělat i v případě, že nebude k dispozici žádný funkční klient.

Bedrock tedy vsází na staticky linkované aplikace, které poběží za všech okolností. Najdete v něm ovšem jen pár věcí: linuxové jádro, bootloader Syslinux, prostředí Busybox a už zmíněný capchroot. To vše je doplněno o několik vlastních skriptů, jejichž názvy začínají písmeny  br:

  • brc umožňuje ručně spustit aplikaci ve zvoleném prostředí
  • brs se stará o přípravu klientů
  • brp hledá dostupné programy ve všech klientech
  • brl spustí zadaný příkaz ve všech klientech
  • bru aktualizuje všechny klienty
  • brsh vždy spustí shell, pokud je dostupný, tak klientský, jinak bedrockovský

Bedrock v současné době nemá instalátor a jeho instalace spočívá v ručním stažení a sestavení všech komponent, kterých ale není zase tak moc. Celý proces popisuje instalační příručka. Připomíná to trochu Linux From Scratch a určitě to není určeno začátečníkům, i když autor plánuje instalaci do budoucna zjednodušit.

Po instalaci toho příliš mnoho neumí a pro samotnou práci budete potřebovat nainstalovat nějaké klienty. Postupy jsou různé, u debianovských distribucí můžete udělat debootstrap, jinde stačí třeba živou distribuci z flash disku zkopírovat do příslušného podadresáře.

Mínusy neboli negativa

Nevýhody Bedrocku vyplývají spíše z toho, co zatím neřeší nebo nemůže řešit nikdy. Například nemá svůj centrální balíčkovací systém a instalace je potřeba provádět v jednotlivých prostředích. Tvůrce má ale v plánu vytvořit centrálního správce správců balíčků.

Jako uživatelé také můžete narazit na konflikty při pokusu použít aplikace, které vyžadují systémové zdroje. To je případ různých démonů, kteří se pro sebe snaží získat exkluzivní přístup k nějakému hardware či síťovým prostředkům jako jsou porty. Každý systém předpokládá, že mu některé takové aplikace poběží. Bedrock tohle (alespoň zatím) neřeší nijak.

Další problém je se sdílením některých systémových adresářů. Například /etc není možné nabindovat do všech klientů, protože každý z nich očekává na určitých místech vlastní soubory či nastavení. Stejně tak nastává problém ve chvíli, kdy se některý balíček snaží například vytvořit v systému vlastního uživatele.

Potíže způsobují i manuálové stránky, které se nezobrazují napříč klienty. Pokud máme v jednom prostředí nainstalovanou aplikaci a chceme se na její dokumentaci podívat z jiného prostředí, máme smůlu. Musíme si vzpomenout (nebo najít), kde je ten který program nainstalovaný a přepnout se do správného klienta, ve kterém manuál najdeme.

V tuto chvíli je zatím k dispozici první alfa verze a podle TODO už autor odvedl velký kus práce a má další plány. Pokud mu zůstane jeho nadšení (a ideálně se přidají další), mohl by být za pár měsíců vidět další zajímavý posun.

Pro koho to je?

Bedrock bychom mohli označit spíše za zajímavost. Ukazuje, že i takto je možné dělat linuxovou distribuci – jako prostředníka mezi ostatními distribucemi. Myšlenka bezbolestných kombinací různých systémů je poměrně zajímavá a při dotažení k dokonalosti by mohla být i skutečně použitelná.

Nejzajímavější je asi pro vývojáře, kteří potřebují svůj software testovat v různých prostředích. Ovšem to je možné provádět i s klasickou virtualizací nebo si prostředí svého „velkého systému“ doinstalovat také další systémy do chrootu, což je možné všude.

ict ve školství 24

Potenciální uživatel by měl být v linuxovém prostředí velmi zběhlý a měl by umět řešit různé problémy, které při kombinaci distribucí vzniknou. Na druhou stranu si takový uživatel může, podobně jako doktor Frankenstein, vytvořit „dokonalého společníka“ složeného z toho nejlepšího z jiných bytostí.

Dokážu si pak představit rozhovor: Jakou máš distribuci? No, Firefox a Gimp mám z Ubuntu, Xka z Archu, LibreOffice z Fedory a Apache mi běží z Gentoo. Co vy na to?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.