Hlavní navigace

Arch Linux v roce 2019: univerzální distribuce nejen pro vývojáře

Luděk Šťastný

Život nám připravuje neustálé změny a já jsem se jim naprosto přestal bránit. To mě přivedlo k distribuci, kterou už mnoho let opravdu aktivně využívám. Není tedy důvod nepodělit se o zkušenosti s ostatními.

Doba čtení: 16 minut

Sdílet

Jasně, ale já mám počítač na práci a ne na hraní, když mi jako vývojáři takový systém klekne na zem, šéf mě minimálně sprdne a pokud se něco podobného stane zrovna uprostřed prodeje, psát ručně faktury už mě prostě nebere.

Ano, vesele se rolující nebo přesněji řečeno valící se distribuce podobné názory prezentované na internetových fórech vyvolává a je to jen pochopitelné. Když jsem před opravdu mnoha lety s Linuxem začínal, na legrácky typu Arch jsem se jen shovívavě usmíval a poté jsem si řekl něco jako: „Jistě, chlapče, tak teď z pískoviště hajdy domů a přestaň blbnout.“

Ubuntu nebo Debian fungovaly více či méně bezbolestně, proč se tedy namáhat něčím jiným. Jenomže novinky lákají a změna je život, my lidé už jsme takoví, takže jsem si před několika zimami řekl, že si právě tuhle kontroverzní věcičku vyzkouším, a to sakra zblízka.

Instalujeme včera i dnes

Před cca pěti lety byla situace taková, že Arch Linux již zcela přešel na démona systemd (pokud si dobře pamatuji jako jedna z prvních distribucí) a z pro mě nepochopitelného důvodu opustil pohodlný textový instalátor. Naštěstí dokumentace projektu pomohla a základní systém se mi podařilo zprovoznit.

V dnešní době mohu postupovat stejně, nebo využít některý z projektů, který instalaci zjednodušuje, případně přidává další funkcionalitu. Velmi pěkně napsaný článek z roku 2016, je kromě pár drobností stále využitelný, pro pohodlnější zprovoznění systému mi asi nejvíce vyhovuje projekt Anarchy linux, dříve Arch anywhere. 

Existují i další zajímavé deriváty, o kterých se zmíním později, pro klasickou čistou instalaci doporučuji výše uvedené. Mimochodem, takto připravený desktopový systém jsem za pět let přeinstalovával pouze jednou a to z důvodu přechodu na obrněný notebook, tato zkušenost je opravdu úsměvná, když uvážím, že se jedná o distribuci doslova se měnící pod rukama a se kterou jsem se rozhodně nemazlil. Jak tohle autoři mohli dokázat?

První spuštění a dokumentace

Systém mám před sebou a pokud jsem nevyužil např. instalátor Anarchy umožňující rovnou zprovoznit grafické prostředí, vesele na mě bliká příkazová řádka a já musím alespoň na chvíli opustit své pohodlí a začít makat. Už při instalaci jsem nastavil ethernet a pomocí příkazu balíčkovacího systému, který popíši níže, instaluji můj oblíbený textový prohlížeč Links.

Abych se nemusel moc namáhat, zkusil bych do Google zadat např. „Arch Linux post installation guide“ a pak bych zkoušel a zkoušel. O Archu jsem však zaslechl, že má výbornou dokumentaci, dobrá, prubnu ji a to hned teď. Najdu si již výše zmiňovaný Installation Guide z wiki projektu nebo zkusím parádní český překlad, který však na rozdíl od oficiálního nemusí být aktuální a zde v sekci Post-installation vidím odkaz na General recommendations, kde se dozvím skutečně hodnotné informace o tom, jak dále postupovat.

Pamatuji si na hezkou hlášku z mé první distribuce tuším Red Hat Linux 6.1, kde si autoři neodpustili malinko pozlobit uživatele Windows a uváděli, že při instalaci tiskárny se netřeba bát juknout do dokumentace a myslet si, že v ní podobně jako ve více rozšířeném systému nic není. Stejně je tomu tak i zde, pomocí wiki nastavím nejen uživatele, balíčkovací systém nebo nejrůznější grafická prostředí, ale také nastavení spotřeby, multimédií, systémových služeb nebo upravím konzoli k obrazu svému.

Vše je parádně prolinkováno a stále aktualizováno, webové vyhledávače tedy u Archu pro řešení otázek a problémů využívám pouze minimálně. Arch wiki je tedy mého názoru opravdu špičková a vedle čerstvých balíčků druhý hlavní důvod, proč jsem se rozhodl tento systém plně využívat.

K dokumentaci se budu ve své recenzi stále vracet, protože je opravdu velmi rozsáhlá a takové věci jako zálohování, LAMP, Sambu, ale i např. nastavení Mediawiki, Webminu, účetnictví Ledger nebo dokonce ERP systém Odoo díky ní není problém připravit k plnohodnotné práci. Hloubka záběru je neuvěřitelná a přehledné zpracování si nezadá ani s vynikající dokumentací komerčních distribucí. Velmi často pracuji bez připojení k internetu, proto s povděkem využiji možnost instalace wiki přímo do systému, a pokud hledám např. informace k prvotní instalaci, v terminálu pomocí příkazu:

$ wiki-search installation

Vyvolám tím dialogové okno, kde mohu daný článek pohodlně vybrat. Českých stránek o této distribuci zrovna mnoho k nalezení není, velmi pěkné informace a návody jsou k nalezení na arch-linux.cz, i když další vývoj webu je zatím nejistý.


Balíčkovací systém

Jsem zvyklý na obrovské repozitáře Debianu a Ubuntu. Arch má v základu balíčků přeci jen o něco méně. Je tu však jedno veliké ale, a to uživatelský repozitář zvaný AUR. Pokud tento přičtu k těm oficiálním, dostávám se na ještě větší počet, než nabízejí výše uvedené distribuce, takže klobouk dolů. My milovníci staré dobré hry Pacman nebudeme mít problém, balíčkovací systém využívá stejný název a jeho jednoduchá syntaxe mi zcela vyhovuje. 

Přiznám se, že při práci na desktopu v Debianu, Ubuntu, Fedoře nebo v SUSE co nejvíce využívám grafického správce balíčků, u Archu (a Slackwaru) nikoliv, řádkový pacman a jeho nadstavby společně s webovým rozhraním balíčků od autorů a uživatelů mi zcela dostačují. K vyzkoušení je např. zajímavý TUI nástroj pcurses nebo grafický frontend od tvůrců odvozené distribuce Manjaro s názvem Octopi.

Když se podívám na výše uvedenou webovou stránku AUR balíčku, vidím všechny informace, které potřebuji. Kromě krátkého popisu a webových stránek projektu také seznam závislostí, instalační předpis zvaný PKGBUILD a uživatelské komentáře, podobně je tomu také u balíčků oficiálních. Uživatelé mohou balíčky také hodnotit, výborně, takto komplexní přístup jen a jen pomůže.

Všechny tyto informace lze získat i pomocí příkazů programu Pacman popsaných na wiki plus další zajímavé triky lze nalézt v tipech tipech. Pacman sám o sobě dokáže pracovat pouze s oficiálními repozitáři, které jsou podrobně popsány na wiki.archlinux.org a jak vidno, projekt balíčky dělí do různých kategorií, které se liší úrovní podpory od autorů distribuce. To je výborné např. při přípravě serveru (ano, Arch je prezentován jako univerzální systém a v roli serveru jej lze také nasadit, viz níže), kde dokumentace pomůže nejen u získání základních informací, ale také pomocí tipů pro zvýšení stability.

Pokud chci použít i uživatelský repozitář AUR, před jehož stabilitou autoři upřímně varují varují, ale který samozřejmě téměř všichni s radostí využíváme, existuje několik nadstaveb. V dřívějších dobách jsem byl velmi spokojený s aplikací yaourt, která se dnes již nevyvíjí a dnes mi velmi vyhovuje v jazyce Go napsaný nástroj yay. Syntaxe je velmi šikovně sladěná s pacmanem, takže mohu využívat známé příkazy a prakticky jediný rozdíl je rozšíření množiny dostupných balíčků.

Yay se při instalaci balíčku z AUR zeptá, zda chce uživatel vidět předpis PKGBUILD, což velmi doporučuji, v minulosti jsem se setkal s bezpečnostním problémem, který se občas nevyhne asi žádnému projektu. Yay nabízí možnost přepis upravit, což nejčastěji využívám tehdy, když jej autor neaktualizoval, např. u mé staré oblíbené amigácké hry Megalomania alias Gigalomania stačí přepsat číslo verze z 0.28–1 na 1.01 a následně upravit příslušný ověřovací podpis sha512sums.


Dnes nelze nezmínit ani moderní správce flatpak nebo snap, pro něž existuje šikovný nástroj, se kterým jsem se setkal na fóru distribuce Manjaro s názvem fpakman. V uživatelském repozitáři lze nalézt opravdu zajímavé věci, které v jiných distribucích musím instalovat mimo balíčkovací systém, kromě zajímavých vývojových prostředí popsaných níže se jedná o vysloveně firemní záležitosti typu účetnictví Flexibee, ERP systém Odoo, plíživou hru DarkMod nebo 3D renderovací nástroj fraktálů Mandelbulber.


Zajímavá jsou i nabízená jádra, kromě klasického mohu využít také varianty LTS, hardened nebo Zen. Vzhledem k povaze distribuce doporučuji při dostatku místa na harddisku ponechat cca 3 verze konkrétního balíčku s možností se ke jedné z nich kdykoliv vrátit, toto funkci jsem sice využíval jen minimálně, ale pro Arch se samozřejmě velmi hodí. Bližší informace společně s dalšími zajímavostmi z této problematiky lze nalézt na arch-linux.cz.

Kromě AURu jsou k dispozici ještě binární repozitáře uživatelů, odkud např. testuji mé oblíbené prostředí Trinity. Seznam všemožných aplikací, které autoři považují za zajímavé, je k dispozici na wiki.archlinux.org a rozhodně je z čeho vybírat. Před jakoukoliv aktualizací autoři doporučují zkontrolovat web projektu a dle aktuálních informací se zařídit.

Balíčkovací systém je dle mého názoru perfektně nastaven a integrován do sebe tak, že veškeré dostupné repozitáře mohu ovládat jediným nástrojem. A jak vidno, k popisu nejen instalace, ale i balíčků si zase vystačím s tou šikovnou wiki.

Lokalizace systému a její využití v čistém terminálu

S lokalizací se u většiny moderních grafických prostředí netřeba trápit, já však někdy pracuji pouze v příkazové řádce a tam češtinu potřebuji. Soubor s potřebným nastavením je k nalezení u jednoho z mých dotazů a po aplikaci příkazů funguje český jazyk včetně problematických mrtvých znaků typu ď nebo ť.

Pro mě je zajímavé připravit si malou kancelář pouze v příkazové řádce, kromě mých oblíbených klasik editoru Nano a správce souborů Midnight Commander mohu využít textový procesor Wordgrinder, tabulkový nástroj sc. nebo zajímavé účetnictví Ledger. Samozřejmě nesmím zapomenout ani na Emacs a jeho org mode, o němž vyšel moc hezký článek zde a který umí opravdu mnoho věcí, já testuji jeho rozšiřující moduly pro nejrůznější programovací jazyky a objevuji stále něco zajímavého.

Všechny tyto aplikace lze využívat kompletně v češtině, pro slabší stroje typu Raspberry Pi Zero a Archem, který je k dispozici pouze s terminálem je to jistě zajímavá zkušenost, i když grafické prostředí je samozřejmě pro uživatelský komfort nedostižné.

Pro vývojáře

Mnozí vývojáři si Arch Linux oblíbí, neb jim vychází všemožně vstříc jak aktuálností a obrovským množstvím dostupných nástrojů, tak dokumentací, která dnes již pravděpodobně daleko přesahuje původní záměr. Klasické linuxové editory Vim a Emacs jsou výborně popsány, právě u Emacsu testuji zajímavé grafické prostředí EXWM. Skvělé je, že wiki nezapomíná ani na mé oblíbený nástroje s přeci jen „lidštějším“ ovládáním Nano a Midnight Commander.

Dnes velmi oblíbený editor VSCode má také svůj vlastní odkaz a vzhledem k jeho oblibě se z AUR přesunul do komunitního repozitáře, i když v AURu lze stále nalézt jeho různé alternativy. Netbeans, a Eclipse patří mezi klasiku a to nejen pro jazyk Java, své příznivce určitě stále mají. Rád zkouším vývojová prostředí od společnosti JetBrains, Arch nabízí snad vše možné. CLion, Idea, Pycharm, PHPStorm nebo GLand jsou pokud možno k dispozici v AUR jako komunitní, komerční i tzv. Early Access Program edice a v případě prvních dvou IDE mohu instalovat i firemní verzi debuggovacích nebo Java nástrojů. 

Obě dnes oblíbené knihovny pro tvorbu grafických prostředí GTK a Qt mají své místo na wiki projektu, debuggovací nástroj GDB nebo kompilátor LLVM též nechybějí. Zajímavých informací je tedy mnoho a nastavit prostředí pro konkrétní programovací jazyk by neměl být problém. Pojďme se nyní podívat na pár programovacích jazyků a jakou podporu Arch nabízí: Free Pascal – moderní Pascal má s tím starým dobrým DOSovým šikulou už jen málo společného a vesele objektuje, mimochodem herní Castle Game Engine je nesmírně zajímavý, s rozsáhlými možnostmi včetně vývoje pro Android a s výbornou dokumentací.


Arch nabízí vývojové prostředí à la Turbo Pascal s názvem Free Pascal IDE a parádní nástroj s vizáží starších verzí Delphi Lazarus. Free Pascal IDE mi parádně sedne, jsem zvyklý na prostředí tohoto typu a dosti bojuji s VIMem a Emacsem (i když jejich možnosti jsou nesmírně zajímavé), ve vývojové verzi již funguje i debugger, jen podpora češtiny je dosti problematická a v nejbližší budoucnosti se jí asi nedočkáme.

Lazarus těmito neduhy naštěstí netrpí a nabízí opravdu plnohodnotné a rychlé prostředí s integrovanou dokumentací a množstvím rozšiřujících balíčků. Některé z dostupných aplikací mi připomínají účetní programy nebo ERP systémy z dob největší slávy Delphi, než mnoho společností přešlo na C#. Zájemcům o tuto problematiku doporučuji prozkoumat projekt Gestinux, Lazarus se využívá i ke komerčním účelům a to nejen v cizině, zajímavé informace o systému Obis4SQL jsem se dozvěděl z diskuze.

Další aplikace, které zkoumám, představují můj oblíbený Double Commander (plus dnes již i Total Commander) a astronomický à la Stellarium program Sky Chart – Cartes du Ciel. Jak vidno, možností pro moderní Pascal je zde mnoho a i když v různých diskuzích často čtu negativní názory, vidím, že je stále aktivně využíván. Pro vývojáře v tomto jazyce připravili autoři Archu souhrnné informace jak svojí práci publikovat.


S jazyky C a C++ nejsou v distribucích větší problémy a ani Arch není výjimkou. Podpora nejrůznějších nástrojů, IDE a debuggerů je výborná a vše potřebné je k nalezení v balíčcích distribuce. Emacs, QT Creator, VSCode nebo CLIon svojí práci zastanou a nic nebrání v jejich vyzkoušení. Java Javisté budou nadšeni, JDK od verze 5 až po tu nejnovější, AdoptOpenJdk, Oracle Java, velmi zajímavý nástroj GraalVM nebo grafický VisualVM, to vše je k nalezení v AUR.

Velmi pokročilá výše uvedená IDE určitě pomohou s vývojem, Java je nesmírně zajímavá a syntaxí i způsobem spouštění výsledné aplikace mi připomíná systém TADS3 pro tvorbu textových her, se kterým jsem se při své programátorské praxi poprvé setkal. Zaujalo mě svobodné ERP řešení Adempiere, které překvapuje svým záběrem a nabízenou funkcionalitou. Python S podporou jazyka Python je to podobné jako s C, ani zde Arch nezapomíná na zvídavé.


Nástroje jako IPython, Pypi, Jupyter Notebook, Spider a balíčky pro frameworky Flask a Django jsou v repozitářích stejně jako zajímavé komplexní prostředí Anaconda, nabídka IDE je také rozsáhlá od Emacsu přes Geany až po Pycharm. V AURu jsou k dispozici i starší verze jazyka již od řady 1.5. Zajímavé je, že v Archu není nezbytně nutné využívat pythonního správce PIP nebo Condu, většina z těchto balíčků je k nalezení v repozitářích. Jen je třeba dávat pozor na duplicitní instalace, s tím se systém bez ručního zásahu nevyrovná.

V tomto jazyce zkoumám již výše uvedený ERP systém Odoo, dříve s názvem OpenERP a ještě dříve TinyERP. Další jazyky Arch nezapomíná ani na jazyky Ada, GO, PHP a spoustu dalších, opět odkazuji na wiki. Vývojářská dokumentace Pro dokumentaci bez připojení k internetu využívám nástroj Zeal a při vývoji v Emacs nebo produktech společnosti JetBrains je k dispozici rozšíření pro komunikaci právě s ním. Jednoduché a účinné, takto mohu programovat za všech okolností a v libovolném terénu (samozřejmě klasická dokumentace typu Cppreference nebo JDK-docs je v AURu také).

Virtualizace a kontejnery

Kromě známého Virtualboxu je k dispozici i skvělá podpora kontejnerů Docker a Podman. Tyto nástroje pomohou jak vývojářům, tak správcům serverů, kteří se rozhodnou Arch takto nasadit s tím, že virtualizace nebo využití kontejnerů odstraní přeci jen určitou nejistotu u takto nastavené distribuce. Suma sumárum je Arch pro vývojařinu jako dělaný a jsem nesmírně spokojen, čerstvé i starší balíčky najednou a rozsáhlá podpora všemožných jazyků pro mě znamená, že hledat pro tuto činnost systém jiný pro mě v současné době nemá smysl.

Univerzální systém

Arch je prezentován jako univerzální systém, což po několika letech používání mohu potvrdit. Pokud potřebuji kancelářskou stanici, nemám zde žádná větší omezení, LibreOffice, účetnictví Flexibee a ERP systém Odoo popsané již v sekci Balíčkovací systém, Účto Tichý Ježek pomocí aplikace Dosbox, případně šikovného jednoduše upravovatelného skriptu nebo Profit emulovaný vrstvou Wine a dnes již dostatečná podpora tiskáren a skenerů umožní připravit opravdu funkční řešení.

Vývojář může být také spokojen a milovník her jakbysmet. Moderní hráč si např. pomocí služby Steam vhodný titul jistě vybere, já jakožto majitel téměř nerozbitné, ale výkonově poněkud slabší sestavy si mohu zahrát šachy nebo mé oblíbené hry Battle for Wesnoth či Widelands, případně využít emulátory Amigy a ZX Spectra.


Nejkontroverznější téma bude asi Arch Linux na serveru, což je nejen z různých internetových diskuzí, ale také z českého článku a diskuze pod ním znát a člověk se nemůže divit. Přiznám se, že osobně jsem se s touto rolí ve své předchozí firemní praxi nesetkal, na druhou stranu autoři nabízejí doporučení pro zvýšení stability, která jsem uvedl v sekci Balíčkovací systém.

Pokud budu především využívat repozitář Core a LTS jádro (i když AURu se ani zde zřejmě nevyhnu), nemohu si nevšimnout možností, které nabízejí primárně komerční distribuce typu Kubernetes nebo mé oblíbené nástroje ze světa SUSE Snapper a Snap-pac. Vždy je možno využít Webmin, který kromě zjednodušení přináší centrální správu, kterou tak oceňuji u nástroje YAST z dílny SUSE.

O možnostech virtualizace a kontejnerech jsem již psal výše, jejich přítomnost dále rozšiřuje způsob nasazení právě na serveru. Případně využití Archu v roli serveru je tedy na uvážení každého z nás, možnost a to velmi zajímavou zde však máme a to je hlavní.

Odvozené distribuce a možnost využití na dalších architekturách

Arch Linux představuje velmi zajímavý základ, proto není divu, že existuje několik derivátů, které jej využívají. Po přechodu distribuce na 64bitovou a ARM architekturu představuje pro majitele starších sestav velmi zajímavou možnost Arch Linux 32 s tím, že drtivá většina aplikací je stále k dispozici.

Fandové plně svobodných projektů a opravdu vhodného HW mohou vyzkoušet Parabolu nebo Hyperbolu. Velmi zajímavá je distribuce pro penetrační testování à la Kali Linux s názvem Black Arch Linux, nabízí obrovské množství dalších nástrojů a možnost samostatné instalace nebo pouhé přidání svího repozitáře do stávajícího systému. Pro pohodlnější uživatele existuje velmi podařený a dnes již snad i známější projekt, než samotný Arch, s názvem Manjaro nebo oblíbený Antergos, jehož vývoj však již byl ukončen a je nahrazen distribucí se zajímavým názvem Endeavouros.

Kompletní přehled nabízí naše nesmrtelná wiki a je tedy z čeho vybírat. Já osobně mám nejblíže ke klasickému Archu, za další možnosti jsem však jako vždy vděčný. Podpora pro minipočítače Raspberry je na velmi dobré úrovni a poměrně záhy po vydání RPi verze 4 byla nabízena i verze určená právě jemu. Já využívám Arch Linux na variantě RPi Zero, kde společně se čtečkou elektronických knih a armádním strojem testuji nejvhodnější prostředí pro vývojovou stanici 64bitovou i využívající architekturu ARM.

Dejte Archu šanci

S distribucí jsem nesmírně spokojen, na armádním stroji s prostředím MATE a na RPi Zero v textovém režimu nebo při využití LXDE běhá velmi svižně a nečekaně stabilně. Za několik let používání jsem řešil tři problémy, dočasně nefunkční nadstavbu firewallu GUFW (kterou aktualizace druhý den opravila) a menší problém se hrou Battle for Westnoth, kde správce balíčku omylem přepsal stabilní verzi tou vývojovou, druhý den bylo zase vše v pořádku a nic se nestalo.

Nejzávažnější bolest představovala aktualizace jádra v době varianty 5.0, která způsobovala občasnou nestabilitu při náběhu na CF-30, přechod na LTS vše vyřešil. To není nic neřešitelného, když uvážím, že se systém doslova mění za běhu, autoři jsou opravdu kabrňáci

Kromě distribuce Endless OS, kterou však spíše jen testuji, zde mám na druhém disku také Q4OS, který kromě velmi zajímavého prostředí Trinity, přidružených aplikací a s tím spojeným zajímavým testováním slouží také jako záchrana, kdyby Arch přeci jen zklamal, zatím nebylo nutno tuto možnost využít.

Každopádně obě distribuce se skvěle doplňují a i když je mi vcelku jedno, kterou variantu linuxu či Windows používám, mám-li tu možnost, volím jednu z nich.Arch doporučuji alespoň vyzkoušet, kombinace novinek, špičková dokumentace, dostupnost i vysloveně firemních aplikací a rychlost běhu také i starších sestavách mi umožňuje sestavit systém přesně dle konkrétních potřeb. Každému jeho model samozřejmě nesedne, já jej však mohu i pro ty opatrnější z nás klidně třeba v kombinaci s některou z konzervativnějších distribucí či vhodnými virtualizačními nástroji doporučit a na zvážení je i nasazení ve firemního prostředí.