Hlavní navigace

Arch Linux: instalace balíčků z AUR

21. 4. 2016
Doba čtení: 16 minut

Sdílet

Minulý díl byl věnován nastavení systémových parametrů a základní konfiguraci JWM, konkrétně systémového panelu. Dnešní díl bude zaměřen na instalace balíčků z AUR a konfiguraci hlavního menu v JWM.

V dnešním dílu bychom měli pokračovat v ukázkách konfigurace JWM, ale uděláme si předtím dvě odbočky. Jedna bude velice krátká a bude spočívat v instalaci dalších aplikací, jako je textový editor (mousepad), webový prohlížeč (netsurf), prohlížeč obrázků (nomacs) a PDF souborů (evince). K tomu si přidáme ještě zatím nepotřebné nástroje pro zobrazení systémových informací (htop, lxtask, gnome-system-monitor). Vše bez problémů zvládneme jedním příkazem

sudo pacman -S mousepad netsurf nomacs evince htop lxtask gnome-system-monitor

Jak je vidět na prvním obrázku v první galerii, bude celková velikost instalace díky mnoha závislostem docela slušná. Hodně závislostí se nám bude ale hodit i do budoucna, proto nad tím nebudeme nijak moc uvažovat. Každý si samozřejmě může zvolit jinou kombinaci základních aplikací, ta výše uvedená byla zvolena jako jedna z mnoha a mnoha možností. Když už máme další aplikace k dispozici, tak se pustíme do druhé zmíněné odbočky, která bude o trochu složitější a rozsáhlejší. Jak jsme si v minulých dílech několikrát řekli, dává nám Arch k dispozici nejenom oficiální repozitáře, ale také uživatelský repozitář AUR. Problém je ale v tom, že dosud nemáme k dispozici žádný nástroj na to, abychom mohli z AUR nějaký balíček nainstalovat. Právě proto si teď ukážeme, jak na to.

Pro daný účel máme k dispozici více možností a my si z nich vybereme jednu a nainstalujeme si aplikaci Packer. Jak z uvedeného odkazu vyplývá, jedná se o tzv. wrapper (obal, obálka) pro našeho již dobře známého správce balíčků pacman. Velký vtip je v tom, že packer zachovává všechny vlastnosti a příkazy správce pacman a rozšiřuje je na instalaci balíčků z AUR. Na tomto jediném příkladu si ukážeme obecnou možnost, jak instalovat balíčky z AUR bez pomoci nějakého specializovaného správce. Jako první si musíme otevřít webový prohlížeč, najít stránku Arch Linux a AUR a příslušný balíček. Tuto situaci můžeme vidět na druhém obrázku první galerie. My se zaměříme na vpravo uprostřed umístěný rámeček s názvem Package Actions. Tam je k dipozici několik možností a pro nás je zajímavá a důležité ta druhá v pořadí – Download snapshot. Na tuto položku klikneme myší a s pomocí webového prohlížeče soubor s archivem ze stránky stáhneme a uložíme někam na disk.

Jak ukazuje třetí obrázek v první galerii, do uživatelského adresáře se uložil soubor s názvem packer.tar.gz, což je samozřejmě komprimovaný archiv. Správce archivů máme k dispozici, takže v něm tento soubor otevřeme. Situace je vidět na čtvrtém obrázku první galerie. Na obrázku vidíme, že obsahem archivu je adresář s názvem packer, který si následně rozbalíme do dříve připraveného adresáře $HOME/Downloads. Na pátém obrázku v první galerii vidíme, že v adresáři je pouze jeden jedinou soubor PKBUILD a také jeho obsah. Z obsahu se můžeme dovtípit, že se jedná o jakýsi popis aplikace a její instalace. Vzhledem k určení našeho seriálu si nebudeme obsah souboru blíže komentovat. Případné zájemce odkážeme na příslušnou nápovědu Create PKBUILD.

Pro nás je mnohem důležitější vědět, co s tímto souborem dělat dál. Arch nám k tomu nabízí příslušnou aplikaci – makepkg. Tato aplikace má docela slušné množství možností a tak dáváme do přílohy příslušnou nápovědu Makepkg Help. Nyní se nebudeme možnostmi aplikace zabývat, v příslušném adresáři si otevřeme terminál a zadáme do něj příkaz

makepkg

Jak nám ale ukazuje šestý obrázek první galerie, tento příkaz nestačí vzhledem k chybějícím závislostem. Po nahlédnutí do nápovědy zkusíme zadat příkaz s příslušným parametrem

makepkg -s

Na sedmém obrázku v první galerii vidíme, že akce byla úspěšnější a příkaz nám za pomoci správce balíčků (proto bylo požadováno heslo) přidal 5 balíčků závislostí. Kromě toho se nám změnil i obsah příslušného adresáře – viz osmý obrázek první galerie. Kromě již zmíněného souboru PKBUILD se nám objevily tři nové adresáře a hlavně další soubor. Jedná se o soubor s příponou *.pkg.tar.xz, který je pro nás velmi důležitý. Jak jsme si řekli již dříve při popisu možností správce balíčků pacman, tento typ souborů se nachází v oficiálních adresářích a proto je možné ho instalovat také lokálně. To jsme si již také teoreticky ukazovali při popisu správce balíčků, takže si uvedeme konkrétní příklad, jak vytvořený instalační balíček dostat do systému:

sudo pacman -U packer*pkg.tar.xz

Zde se jedná o instalaci a tak je nutné použít administrátorská práva. My si zde příkaz pouze uvedeme, ale nebudeme ho spouštět. Ukážeme si totiž jednodušší cestu, kde se použije pouze jeden příkaz, který provede vytvoření příslušného balíčku a jeho instalaci najednou. Za tímto účelem si vymažeme celý adresář $HOME/Downloads/packer a znovu si ho vytvoříme ze staženého archivu. Tím dostaneme opět situaci, kdy je v adresáři pouze jeden soubor PKBUILD. Otevřeme si zde terminál a zadáme jeden příkaz

makepkg -ACcis

Než ho spustíme, tak se blíže podíváme na zadané parametry:

  • A – v PKBUILD ignoruje nekompletní pole pro popis architektury, pro kterou je balíček určen
  • C – odstraní zdrojový adresář před sestavením balíčku
  • c – odstraní pracovní soubory po sestavení balíčku
  • i – po úspěšném sestavení balíčku provede automaticky jeho instalaci
  • s – pomocí správce balíčků pacman nainstaluje chybějící závislosti

Příkaz tedy můžeme spustit, tedy vlastně raději s tím chvíli počkáme…Možná někoho napadlo, že když se bude také instalovat, bylo by vhodné či dokonce nutné použít práva admina. Devátý obrázek v první galerii nám ale dokazuje, že opak je pravdou! Proto ponecháme příkaz v původním formátu a spustíme ho. Desátý obrázek první galerie ukazuje průběh sestavení balíčku, zadání hesla administrátorského oprávnění tam, kde je to teprve nutné a nabídku instalace. Žádné závislosti se nestahují, protože to jsme již provedli v minulém kroku. Instalaci potvrdíme a necháme doběhnout do úspěšného konce. Na předposledním obrázku v první galerii vidíme situaci v příslušném adresáři. Můžeme si všimnout, že naše parametry pro „čištění po sestavení“ zasáhly a zůstal pouze instalační soubor a jeden adresář.

Již jsme si dříve řekli, že aplikace packer zachovává všechny vlastnosti a parametry dříve používaného správce pacman. Proto zkusíme zadat již uvedený příkaz pro aktualizaci systému, ale s pomocí nového správce balíčků:

packer -Syu

Vnímavější a pozornější čtenáři si jistě všimli, že jsme použili formát bez požadavku na administrátorský přístup, i když je samozřejmě potřebný! V tom je jeden z velkých rozdílů mezi oběma správci balíčků. U správce packer se používá vždy a pouze kratší formát příkazu. On sám rozezná potřebu administrátorského přístupu a sám požádá uživatele o zadání příslušného hesla. To je ostatně vidět na posledním obrázku první galerie. Kromě toho je na obrázku vidět, že správce propátral oficiální adresáře (shodou okolností nenašel žádné aktualizace). Tím bylo naplněno naše tvrzení, že má všechny vlastnosti správce pacman. Pak ale provedl ještě další krok – synchronizoval databázi balíčků AUR a také nic nového nenašel (což je samozřejmě pochopitelné, protože jediný balíček z AUR je právě packer, a ten jsme nainstalovali před pár vteřinami…).

Tímto konstatováním obě odbočky ukončíme a vrátíme se ke konfiguraci JWM, konkrétně pak k nastavení hlavního menu. Jak již bylo z dřívějšího popisu patrné, nachází se tato konfigurace v dílčím souboru menu, v příloze je pak původní obsah – menu. Pokud se na tento soubor blíže podíváme, tak samozřejmě zjistíme dvě věci: v položkách jsou odkazy na nějaké ikony, které se ale při zobrazení menu neobjeví a jsou obsaženy aplikace, které v systému vůbec nemáme instalované. Při snaze o vyvolání hlavního menu si také můžeme všimnout, že je toho dosaženo buď levým nebo prostředním tlačítkem myši. My si celé menu výrazně zjednodušíme a připravíme si ho na další úpravy. Výsledkem bude cca poloviční počet řádků (uvádíme bez hlavičky XML):

<!-- The root menu. -->
    <RootMenu onroot="3">                             //1
        <Program icon="terminal.png" label="Terminál">lilyterm</Program>       //2
        <Separator/>                                      //3
        <Menu icon="folder.png" label="Aplikace">                 //4

        </Menu>                                       //5
        <Separator/>                                  //6
        <Menu label="Sezení" labeled="true">                     //7
        <Restart label="Restart JWM" icon="restart.png"/>             //8
        <Exit label="Ukončit JWM" confirm="true" icon="quit.png"/>           //9

        </Menu>                                       //10
    </RootMenu>                                       //11

Před restartem můžeme ještě v terminálu ověřit bezchybnost konfigurace a restartovat JWM. Výsledek je vidět na prvním obrázku ve druhé galerii. Aby se nemusel soubor opisovat z článku, dáváme ho do přílohy jako výchozí verzi - menu výchozí. Jak jsme se k zobrazenému výsledku dostali, si podrobněji popíšeme (odkazů na ikony si zatím nebudeme všímat, ničemu to nevadí):

  1. zobrazení menu bylo změněno na logičtější kliknutí pravým tlačítkem myši na ploše
  2. byl změněn název položky a odkaz na jinou aplikaci
  3. předchozí položka je oddělená vodorovnou čarou
  4. byla vytvořena skupina pro budoucí výběr aplikací
  5. skupina byla ukončena
  6. předchozí položka je oddělená vodorovnou čarou
  7. byla vytvořena nová položka pro manipulaci sezení, zadán nadpis skupiny – viz obrázek
  8. název položky byl lokalizován a upřesněn
  9. název položky byl lokalizován a upřesněn, bylo ponecháno potvrzení akce uživatelem
  10. skupina byla ukončena
  11. bylo ukončeno hlavní menu

Při změnách jsme samozřejmě vycházeli z dokumentace JWM s přihlédnutím na jeho aktuální verzi. Obecně by asi bylo vhodné přidat ještě pár postřehů:

  • může být použito více hlavních menu, které se od sebe liší tím, že se zobrazují pomocí různých tlačítek. V základu se samozřejmě jedná o tlačítka myši: 1 – levé, 2 – prostřední, 3 – pravé, 4 – točení kolečkem jedním směrem, 5 – točení kolečkem druhým směrem. Kromě toho jsou povolené ještě hodnoty 0, 6–9 a a-z. Pro tyto hodnoty se musí použít buď panelové tlačítko nebo klávesová zkratka
  • k většině položek lze používat volbu pro zobrazení nápovědy (tooltip) – budeme demonstrovat později
  • kromě již použitých položek je možné najít v nápovědě ještě mnoho dalších – Dynamic, Desktops, SendTo, Stick, Maximize, Minimize, Shade, Move, Resize, Kill, Close. Trochu podrobněji se jimi budeme zabývat na konci kapitoly o konfiguraci JWM.

Pokud se opět vrátíme k výchozí verzi menu, tak můžeme konstatovat že zde máme tři skupiny položek:

  • přímé spuštění vybraných aplikací, zatím je zde pouze jedna
  • výběr aplikací, položka je zatím prázdná
  • skupinu pro manipulaci se sezením, má zatím dvě položky

První skupina vybraných aplikací bude jednoduchá, krátká a z velké části v čase neměnná. Proto jí dokončíme jako první a přidáme do ní další tři aplikace: textový editor, správce souborů a webový prohlížeč:

<Program icon="editor.png" label="Textový editor">mousepad</Program>
<Program icon="fmanager.png" label="Správce souborů">xfe</Program>
<Program icon="browser.png" label="Webový prohlížeč">netsurf</Program>

Druhou skupinu zatím vynecháme a zaměříme se na manipulaci sezení. Máme zde dvě položky, které slouží pro restart a ukončení JWM. Pokud si ale pozornější uživatel mohl všimnout, nemáme nikde definovány možnosti pro restartování a ukončení celého systému. Vzhledem k tomu, že by se sem obě operace hodily, tak je přidáme právě do této skupiny. Možností, jak zařídit restart či vypnutí systému, je více a my zde využijeme nástroje, které nám nabízí systemD. Pro tuto činnost je zde celkem 5 příkazů a my z nich využije pouze dva, právě pro restart a vypnutí systému:

<Program icon="reboot.png" label="Restartovat systém">systemctl reboot</Program>
<Program icon="poweroff.png" label="Vypnout systém">systemctl poweroff</Program>

ji

Zbývá nám tedy poslední skupina, která by měla obsahovat víceméně všechny aplikace, které máme v systému instalované nebo alespoň jejich valnou většinu. Když se nad touto definicí zamyslíme, tak nás asi jako první napadnou dvě věci, tedy lépe řečeno spíše problémy:

  • sestava aplikací se v čase může dost měnit, a to velmi rychle či ve velkém rozsahu, popř. oboje
  • ruční údržba systému menu se ve světle předchozí věty stává už teď noční můrou každého uživatele

Naštěstí jsme pořád v systému Arch a můžeme si poradit poměrně jednoduše. První problém asi nezměníme, aplikace do systému přicházejí a odcházejí. Ale co s tou ruční konfigurací menu??? Nebudeme dlouho napínat a podíváme se na jedenu zajímavou aplikaci na AUR – JWM Menu Generátor. Jak je z odkazu patrné, jedná se o jednoduchý generátor menu přímo pro JWM, postavený na podobné aplikaci pro FluxBox. Zdá se, že by tato aplikace mohla naše noční můry ohledně menu zaplašit a proto si jí zkusíme nainstalovat. Už ale nemusíme složitě nic stahovat, sestavovat a instalovat balíček. Stačí nám použít jednoduchý příkaz

packer -S jwmappmenugen-git

Jedná se vlastně o první využití našeho nového správce balíčků, takže si trochu více představíme jeho funkci. Jak již bylo řečeno, stačí krátký formát příkazu bez explicitního požadavku na práva admina. Po spuštění se objeví to, co je viditelné na druhém obrázku druhé galerie – přehled závislostí. Jak je z obrázku zřejmé, budou se instalovat dvě závislosti z oficiálních repozitářů, jedna z AUR a také samozřejmě vlastní požadovaný balíček z AUR. Jak je vidět ze třetího obrázku ve druhé galerii, první jsou na řadě instalace závislostí z repozitářů. K tomu nás správce vyzve k zadání hesla a pak automaticky instaluje vše potřebné (dokonce i další závislost instalovaného balíčku). Nakonec se přejde k instalaci závislostí z AUR, kdy nám správce nabídne možnost změn v příslušném souboru PKBUILD pomocí výchozího textového editoru. My se tím nebudeme zabývat a na nabídku budeme zdvořile rezignovat. Na to konto správce provede vše potřebné k sestavení prvního balíčku a na závěr nám nabídne jeho instalaci – viz čtvrtý obrázek druhé galerie. Tu samozřejmě odsouhlasíme a stejným způsobem se pokračuje s vlastním balíčkem generátoru menu. Jeho instalaci také potvrdíme a konečný výsledek vidíme na pátém obrázku ve druhé galerii.

Generátor menu máme připravený k akci a tak se můžeme podívat na to, co nám nabízí a vyvoláme si nápovědu

jwmappmenugen -h

Šestý obrázek druhé galerie nám ukazuje, že máme k dispozici 4 volby, nápovědu samotnou i pro konfigurační soubory a umístění konfiguračních souborů. Těmi se zatím nebudeme zabývat (jak je z nápovědy zřejmé, jedná se o soubory v Perlu) a rovnou si vyzkoušíme samotný příkaz podle vzoru na generování jednoduché varianty menu

jwmappmenugen

Výsledek vidíme na sedmém obrázku ve druhé galerii. Z něj jasně vyplývá, že jedním jednoduchým příkazem nám vzniklo komplexní menu včetně rozdělení aplikací do jednotlivých organických skupin. To je samozřejmě potěšující informace a máme jasný doklad o tom, že náš předpoklad o snadnější možnosti tvorby menu se naplnil. Na druhou stranu ale vidíme minimálně dvě potenciálně problematické záležitosti: ve skupině přímo spouštěných aplikací je gmrun, který vůbec není v našem systému přítomen. To by samo o sobě nemuselo moc vadit, protože tuto sekce nakonec pro naše potřeby nevyužijeme. Druhý nedostatek je v anglických názvech jednotlivých kategorií aplikací. Zase to samo o sobě není žádná tragédie, ale jeden z našich předpokladů byla česká lokalizace. Máme dvě možnosti, jak to napravit. Můžeme samozřejmě po každé změně sestavy aplikací a novém generování menu ručně opravovat samotný generovaný text. Tím bychom se ale vrátili zpět na začátek a dostali se do situace, kterou jsme chtěli řešit.

Druhá varianta je jednodušší a hlavně trvalého charakteru – otevřeme si konfigurační soubor $HOME/.config/jwmappmenugen/schema.pl a zaměříme se na jeho konec – viz osmý obrázek druhé galerie. Zde provedeme dvě změny:

  1. zakomentujeme řádek s aplikací gmrun, který je zde defaultně deklarován
  2. v následujícím přehledu lokalizujeme názvy skupin aplikací dle uvážení a zvyklostí uživatele

Změny (viz devátý obrázek ve druhé galerii) uložíme a znovu spustíme příkaz pro generování menu. Obrázek č. 10 druhé galerie nám ukazuje, že oba nedostatky byly odstraněny. Tedy pokud bychom byli ještě větší hnidopiši, mohli bychom si všimnout i nelokalizovaných názvů jednotlivých aplikací. To už je ale problém někde jinde, protože generátor si tyto názvy bere z adresáře /usr/share/applications a zde přítomných *.desktop souborů. Toto necháme stranou a zkusíme si spustit generátor s jedním zajímavým parametrem:

jwmappmenugen -i

Na obrázku č. 11 ve druhé galerii vidíme, že se u některých položek menu objevil odkaz na příslušné ikony. To, že je ještě dost položek bez odkazů na ikony, má jednoduchý důvod. Je způsobeno tím, že jsme do systému vlastně žádné balíčky ikon neinstalovali. Zkusíme to tedy napravit a zadáme příkaz pro instalaci několika témat a také aplikace pro jejich nastavení

packer -S faenza-icon-theme delorean-dark-3.18 awoken-icons lxappearance

Následně si spustíme nastavení vzhledu, vybereme nějaké téma (např. DeLorean Dark) a motiv ikon (např. AwOkenDark) a změny uložíme. Více je vidět na obrázcích č. 12 a 13 ve druhé galerii. Změna vzhledu sice nastala, ale pokud bychom se znovu pokusili generovat menu, tak by se nic nezměnilo! Náprava je naštěstí jednoduchá: generátor menu si totiž při každém spuštění „osahá“ globální adresáře s ikonami (/usr/share/icons a /usr/share/pixmaps) a v adresáři $HOME/.config/jwmappmenugen vytvoří databázi těch, které aktuálně najde (soubor icons.db). My jsme sice nově instalovali spoustu ikon, ale pokud existuje stávající databáze ikon v konfiguraci generátoru menu, tak se nic nezmění ani při jeho opakovaném spouštění. Máme tedy dvě možnosti řešení: témata a ikony instalovat jako první a teprve následně spustit generátor menu. To jsme ale neudělali, tak nám zbývá pouze druhá varianta – vytvořit databázi novou. K tomu nám pomůže návrat k obrázku s nápovědou aplikace jwmappmenugen, kde je volba pro regeneraci databáze ikon. Stačí tedy zadat příkaz

jwmappmenugen -d

Je nutné se nenechat zmást samotnou nápovědou, kde se může jevit možnost použít obě volby ve formátu

jwmappmenugen -di

Tato varianta však nefunguje! Pokud použijeme předchozí příkaz, tak dojde ke smazání souboru icons.db. My pak můžeme znovu spustit příkaz na generování menu s tím, že se provede aktualizace databáze ikon a tomu bude odpovídat i výsledek, který je vidět na obrázku č. 14 druhé galerie. Výsledek našeho snažení už je celkem obstojný, takže můžeme udělat poslední dva kroky. Mohli bychom samozřejmě kopírovat sestavu menu přímo z okna terminálu, ale bude lepší, když si celou sestavu necháme zapsat do souboru příkazem

jwmappmenugen -i >> JWM-Menu.txt

Kompletní soubor dáváme do přílohy JWM-Menu. Tento soubor si otevřeme a zkopírujeme položky menu počínaje řádkem č. 5

<Menu icon="/usr/share/icons/AwOkenDark/clear/24x24/categories/applications-utilities.png" label="Příslušenství">

a konče předposledním řádkem souboru

</Menu>

Následně si otevřeme dílčí konfigurační soubor menu, kde máme připravenou prázdnou sekci pro spouštění aplikací mezi řádky 10 –12

<Menu icon="folder.png" label="Aplikace">

</Menu>

Na řádek č. 11 pak vložíme kopii sestavy menu, změny uložíme a restartujeme JWM. Pokud otevřeme novou verzi menu, tak bude vypadat jako na předposledním obrázku ve druhé galerii. Pokud by se někomu tento formát nelíbil, může vymazat nebo zakomentovat řádky č. 10

root_podpora

<Menu icon="folder.png" label="Aplikace">

a tomu odpovídající konec sekce na řádku č. 55 a výsledek je pak viditelný na posledním obrázku druhé galerie. Tímto bychom dnešní díl mohli ukončit a do přílohy dát konečnou verzi dílčího konfiguračního souboru menu konečné.

Dnešní díl jsme věnovali instalaci základní sady aplikací a podrobněji jsme si popsali instalaci balíčků z uživatelského adresáře AUR. Tímto způsobem jsme si instalovali nového správce balíčků, která je schopen instalovat balíčky z oficiálních i uživatelského adresáře jedním příkazem. Podrobněji jsme se zaměřili na konfiguraci hlavního menu JWM a hlavně automatické generování sestavy uživatelských aplikací. V příštím dílu se budeme věnovat nastavení klávesových zkratek pro spuštění aplikací v JWM. Tuto součást WM pak doplníme ukázkami textových i grafických spouštěčů aplikací včetně porovnání jejich náročnosti vzhledem k systémový prostředkům. Také si ukážeme možnosti JWM pro automatický start aplikací při jeho startu, restartu nebo ukončení.

Byl pro vás článek přínosný?