Hlavní navigace

Distribuce Arch Linux: dokončení instalace, správce balíčků

24. 3. 2016
Doba čtení: 13 minut

Sdílet

Minulý článek byl věnován plánům a přípravě instalace Archu. Zaměřili jsme se na dokumentaci a udělali první kroky k instalaci. Dnes se budeme naplno věnovat krokům instalace a podrobnému popisu postupu.

minulém článku jsme postup instalace kompletního systému Arch Linux ukončili těsně předtím, než byl do systému přidán běžný uživatel. Bylo to z toho důvodu, že chceme demonstrovat nastavení uživatelského shellu trochu jinak, než je to uvedené ve většině popisů a návodů. Konkrétně si pro našeho uživatele připravíme možnost používat aplikaci ZSH. První co musíme udělat je zjištění, jestli je potřebný balíček standardně instalovaný. K tomu slouží jednoduchý příkaz:

# chsh -l

Jak ukazuje následující obrázek, ukáže nám tento příkaz přehled všech instalovaných shellů a také to, že zsh instalován není:

Přehled instalovaných shellů

Situaci můžeme samozřejmě velmi jednoduše napravit a pomocí správce balíčků příslušný balíček instalovat příkazem:

# pacman -S zsh

Jak ukazuje následující obrázek, instaluje se pouze jediný balíček bez závislostí s konečnou velikostí cca 5,1 MB.

Instalace zsh

Znovu zadáme příkaz pro získání přehledu instalovaných shellů a další obrázek nám ukazuje, že je zsh v systému již k dispozici.

Přehled shellů + zsh

Máme tedy vše připravené a můžeme přikročit k vytvoření jediného běžného uživatele budoucího systému Arch. Přihlašovací údaje tohoto uživatele budou stejné pro jméno i heslo – archguide. K vytvoření uživatele a nastavení jeho hesla použijeme dva postupné příkazy:

# useradd -m -G wheel -s /bin/zsh archguide
# passwd archguide

Výsledek našeho snažení je vidět na obrázku

Běžný uživatel a heslo

Je samozřejmě možné stejným způsobem vytvořit více uživatelů (a různě nastavit zařazení do uživatelských skupin, shelly atd). My se ale spokojíme pouze s jedním ukázkovým a místo toho se podíváme na další možnosti ohledně jeho práv v systému. Jedná se hlavně o to, aby tento jediný uživatel měl určitá práva k systémovým operacím a nemusel využívat administrátorský účet a práva. K tomuto účelu se používá aplikace sudo. Ta je v Archu automaticky instalovaná jako součást skupiny base-devel, kterou jsme instalovali v minulém dílu. Proto se můžeme zaměřit pouze na konfiguraci, která se nachází v souboru /etc/sudoers. Tento soubor si otevřeme příkazem

# nano /etc/sudoers

, najdeme příslušnou sekci s uživatelskými právy a provedeme velmi jednoduchou změnu. Podle výše uvedeného návodu přidělíme našemu uživateli administrátorská práva v plném rozsahu s tím, že bude muset při spouštění aplikací pomocí sudo zadávat své uživatelské heslo. Změna nastavení spočívá v přidání jednoho řádku ve tvaru

archguide ALL=(ALL) ALL

Výsledek je viditelný na následujícím obrázku:

Konfigurace sudoers

Změny v souboru uložíme a zavřeme ho. Tím máme pro naše aktuální účely práva uživatele nastavena. Dále se nastavením práv uživatele nebudeme zabývat (v průběhu série se k němu ale ještě vrátíme) a případné zájemce odkážeme na velmi podrobný popis Sudoers manual. Tímto se dostáváme k jednomu z posledních kroků instalace a tím je zprovoznění systémového zavaděče. V předchozím textu jsme si řekli, že na disku budeme používat systém MBR a také jsme si nainstalovali balíček se zavaděčem GRUB česky. To samo o sobě nestačí a my musíme GRUB ještě instalovat na patřičné místo tak, aby byl schopen plnit svoji základní funkci (v našem konkrétním případě do MBR systémového disku /dev/sda) a provést jeho základní konfiguraci. Na první akci budeme potřebovat jeden příkaz

grub-install --recheck /dev/sda

Následující obrázek ukazuje, že byla provedena instalace GRUB pro platformu i386 a byla ukončena bez hlášených chyb:

Instalace GRUB do MBR

Základní konfiguraci GRUB provede také jediný příkaz

# grub-mkconfig -o /boot/grub/grub.cfg

Tento příkaz vygeneruje základní verzi konfiguračního souboru, který je samozřejmě možné dále upravovat dle potřeby. My se tím ale zabývat nebudeme. Také zde nebudeme podrobněji popisovat instalaci zavaděče pro systém UEFI a případné zájemce odkážeme na anglickou nápovědu, která je v tomto případě mnohem obsáhlejší, než výše uvedená česká verze GRUB. Další obrázek zobrazuje výsledek příkazu pro konfiguraci GRUB:

Konfigurace GRUB

My se tímto přímo nezadržitelně blížíme k předpokládanému úspěšného dokončení instalace systému a zbývá nám prakticky poslední výkonný příkaz. Nebylo to zde nijak zdůrazněno, ale z předchozího popisu je zřejmé, že v instalačním systému máme k dispozici připojení k internetu a můžeme tedy kromě jiného bez problémů instalovat vybrané balíčky. Určitě by bylo vhodné, abychom si tuto možnost zachovali i v novém systému. Možností nastavení sítě je k dispozici více. V tuto chvíli se budeme zabývat pouze kombinací drátového připojení k síti s tím, že příslušné síťové adresy budou systému přidělovány nadřazeným routerem (jedná se o poměrně obvyklou kombinaci pro klasické PC). Pokud by někdo chtěl či potřeboval nastavit statickou síťovou adresu nebo konfigurovat bezdrátové připojení k síti třeba na notebooku, může se inspirovat třeba zde Konfigurace připojení k síti.

Pro náš účel využijeme ještě další dva pomocné nástroje: klienta pro DHCP (Dynamic Host Configuration Protocol, dynamický protokol pro konfiguraci síťových hostitelů) – DHCPCD a nástroj pro řízení systému a služeb systemd. Nebudeme zde probírat žádné další podrobnosti a případné zájemce odkážeme na uvedené stránky nebo přímo na weby obou projektů. My zde použijeme pouze možnosti systemd a povolíme si příslušnou službu (spuštěná už samozřejmě je) pro klienta DHCP a to jedním příkazem. Tento příkaz zajistí spuštění vybrané služby vždy při startu systému.

# systemctl enable dhcpcd.service

Jenom pro informaci zde uvedeme, že vybranou službu lze povolit (pro spuštění při startu), zakázat, spustit, zastavit a zjistit její stav pomocí příkazů systemctl enable/disable/start/stop/status. Výsledek příkazu je pak viditelný na následujícím obrázku:

Tento krok máme tedy již za sebou a vzhledem k tomu, že byl vlastně poslední, tak nám zbývá už jenom maličkost: vrátit se zpět do instalačního systému a odpojit všechny připojené diskové oddíly. To provedeme pomocí čtyř jednoduchých postupných příkazů

exit
umount /mnt/Data
umount /mnt/boot
umount /mnt

Další obrázek ukazuje, jak vypadá výsledek těchto příkazů:

Návrat a odpojení oddílů

Nyní už nezbývá nic jiného, než instalační systém restartovat a nastartovat v tomto a minulém dílu vytvořený základní systém Arch Linux. Proto spustíme jednoduchý příkaz

# reboot

a počkáme, až systém naběhne. Pokud jsme někde nevyrobili nějakou nečekanou a nezvanou chybu, mělo by k tomu dojít poměrně rychle a bez problémů. Po startu se přihlásíme jako uživatel root a zobrazíme si pomocí známého příkazu informace o jádru systému. Výsledek nám ukazuje následující obrázek

Nový systém, informace o jádru

Nyní by asi bylo nejlogičtější provést aktualizace, ale my to v tuto chvíli odložíme a podíváme se blíže na správce balíčků. Již v základní verzi je k dispozici aplikace pacman (Package manager). Pacman je základním stavebním kamenem balíčkovacího systému Arch a umožňuje instalovat binární balíčky z oficiálních repozitářů nebo balíčky příslušně připravené uživatelem (lokální či vzdálené, ale nikoliv z AUR!). Je napsaný v jazyce C, velmi malý (velikost balíčku 766 kB, po instalaci 4.7 MB) a svižný. Původně se používaly balíčky ve formátu pkgname.tar.gz, v současnosti se již používá formát pkgname.tar.xz s kompresí LZMA2. Balíček pacman obsahuje další zajímavé nástroje, jejichž přehled si můžeme zobrazit pomocí zatím trochu záhadného příkazu

# pacman -Qlq pacman | grep bin

Výpis dostupných nástrojů je v příloze   Pacman-Bin. V další příloze Pacman-Help pak nalezneme globální nápovědu vyvolanou příkazem

# pacman --help

Tato nápověda je velmi stručná, ale napoví nám, jak se dostat ke konkrétnější nápovědě pro jednotlivé operace správce balíčků. Než se k tomu dostaneme, tak si tyto operace postupně představíme. Podle výpisu nápovědy jsou kromě zobrazení globální nápovědy a verze balíčku k dispozici tyto operace:

  • -D/--database = operace s lokální databází balíčků
  • -F/--files = operace s balíčky
  • -Q/--query = hledání balíčků v lokální databázi
  • -R/--remove = odstranění balíčků lokálně instalovaných
  • -S/--sync = synchronizace a aktualizace balíčků
  • -T/--deptest = hledání závislostí balíčků
  • -U/--upgrade = instalace lokálně vytvořených nebo stažených balíčků

Nápověda k jednotlivým operacím je v přílohách Pacman-D, Pacman-F, Pacman-Q, Pacman-R, Pacman-S, Pacman-T, Pacman-U.

My se nebudeme podrobněji zabývat celým rozsahem možností správce balíčků pacman, ale zaměříme se na nejčastěji používané konkrétní příkazy. Přitom budeme vycházet vždy z toho, že standardní formát příkazů správce balíčků je následující:

(sudo) pacman <operace> <volby> <balíček/y>

Pokud budeme správce balíčků spouštět jako běžný uživatel, je bezpodmínečně nutné použít příkaz sudo pouze tam, kde bude mít daný příkaz nějaký vliv na databázi balíčků. Konkrétně si to objasníme v dalším textu. Než se ale pustíme do představení konkrétních příkazů správce balíčků, bylo by určitě vhodné si něco málo říct o jeho konfiguraci. V základním stavu se konfigurace skládá ze dvou souborů a jednoho adresáře s klíči pro kontrolu pravosti stahovaných a instalovaných balíčků. My se zde zaměříme pouze na dva základní konfigurační soubory. Globální konfigurace se nachází v souboru /etc/pacman.conf – viz příloha Pacman.conf. Jak je z obsahu přílohového souboru zřejmé, většina voleb je zakomentovaných. My nebudeme v našem příkladu konfiguraci měnit, takže si pouze řekneme, jaké jsou zde možnosti:

  • v první části je možné nastavit cesty k důležitým součástem správce balíčků jako je lokální databáze, vyrovnávací paměť a další
  • pak následují nastavení možností, jak zabránit pravidelným aktualizacím vybraných balíčků a skupin pomocí voleb IgnorePkg a IgnoreGroup
  • další funkční možností je kontrola místa na disku při instalaci balíčků – volba CheckSpace
  • nastavení úrovně požadované důvěryhodnosti balíčků – volba SigLevel a odkaz na wiki Package signing
  • pak následují konfigurace jednotlivých oficiálních repozitářů s odkazem na seznam zrcadel, ke kterému se ještě vrátíme
  • v rámci nastavení repozitářů jsou zde připravené a zakomentované oba repozitáře testing
  • poslední volby se týkají nastavení uživatelského (lokálního či vzdáleného) repozitáře s balíčky. Nastavují se zde jenom dva parametry – úroveň důvěryhodnosti (nastaveno tak, že svým vlastním balíčkům bychom samozřejmě měli věřit, že…) a odkaz na adresář, kde jsou příslušné balíčky umístěné

My se nyní přesuneme k dalšímu konfiguračnímu souboru, který je uveden ve výše popisované globální konfiguraci a také jsme se o něm letmo zmínili při instalaci – seznam zrcadel, které obsahují repozitářovou strukturu. Tento soubor se nachází na /etc/pacman.d/mirrorlist a také v příloze Arch Mirrorlist. Zde pouze konstatujeme, že zrcadel je opravdu mnoho a je možné si je zakomentovat podle potřeby a lokality. Pro podrobnější popis zrcadel a jejich aktuálního stavu je možné se obrátit na Arch Mirrors nebo Mirrors Status. Více zatím asi nemá smysl o nastavení zrcadel psát už i z toho důvodu, že se na nich situace pořád mění a bylo by nutné uživatelské nastavení neustále hlídat a aktualizovat (k tomuto tématu se ale v následujících dílech podrobněji vrátíme!).

Po krátké a stručné exkurzi do konfigurace správce balíčků se můžeme vrátit zpět k popisu vybraných příkazů pro manipulaci s balíčky. Námi komentované příkazy si rozdělíme do pěti kategorií:

  1. instalace balíčků
  2. odstraňování balíčků
  3. aktualizace balíčků
  4. dotazy na databázi balíčků
  5. ostatní příkazy

Instalace balíčků

Asi nejjednodušší příkaz je pro instalaci jednoho nebo více balíčků (pokud je jich víc, jsou jejich názvy odděleny vždy jednou mezerou) např.

# sudo pacman -S pkg1 pk2 pkg3

Pokud by náhodou existovalo více verzí stejného balíčku v různých oficiálních repozitářích, můžeme bez problémů deklarovat tu verzi, kterou požadujeme:

# sudo pacman -S core[extra,community]/pgk4

Kromě jednotlivých balíčků můžeme využít i toho, že Arch nabízí v repozitářích tzv. skupiny balíčků. Již jsme se o nich zmínili při instalaci, kdy jsme provedli instalaci skupin base a base-devel. Skupin je k dispozici ale mnohem víc, jak se můžeme přesvědčit v odkazu ArchLinux Groups. Následující obrázek nám ukazuje část příslušné stránky odkazu. Můžeme si všimnout, že jsou zde k dispozici čtyři položky – architektura, název skupiny balíčků, počet balíčků ve skupině obsažených a datum poslední aktualizace skupiny. Kliknutím na název skupiny je možné se dostat k seznamu balíčků v ní obsažených a pak přímo k vybraným balíčkům:

Skupiny balíčků Arch

Abychom si operaci více přiblížili, vybereme si skupinu, kde je hodně balíčků a vyzkoušíme příkaz

# sudo pacman -S gambas3

Další obrázek nám ukazuje, co se po spuštění tohoto příkazu stane:

Instalace skupiny s více balíčky

Jak je z obrázku patrné, je zde informace o počtu balíčků ve skupině obsažených, jejich očíslovaný a abecedně seřazený seznam a krátká nápověda o tom, že výchozí výběr zahrnuje všechny obsažené balíčky. Tato volba je samozřejmě také nejčastější a stačí pro ní pouze použít klávesu Enter. Správce balíčků nám ale nabízí ještě další dvě možnosti, jak si pro instalaci vybrat pouze některé balíčky ze skupiny. První možnost vybere všechny balíčky (jejich čísla dle seznamu), které se mají instalovat:

1-50 52 53-80

Tento příkaz zajistí, že se ze skupiny budou instalovat série balíčků nebo jednotlivé vybrané balíčky. Opačně také můžeme říct, že se nebudou instalovat neuvedené balíčky (v tomto konkrétním případě se jedná o balíčky 51 a 81–86). Pokud bychom chtěli udělat obrácený postup a deklarovat balíčky, které se instalovat nebudou, použijeme druhou možnost:

^51 ^81-86

Tento příkaz nám zajistí stejný výsledek, jako ten předchozí a nebudou se instalovat balíčky 51 a 81–86. Pokud by to bylo nutné či výhodné, je samozřejmě možné použít kombinaci obou možností. Po zadání volby pak opět stačí klávesa Enter a správce zahájí stahování a instalaci vybraných balíčků skupiny. Pokud bychom nechtěli skupinu rovnou instalovat, ale prvně si prohlédnout seznam balíčků v ní obsažených, můžeme to udělat velmi jednoduše. Použijeme kromě příznaku operace také příznak pro volbu, zde konkrétně přímo pro výpis obsahu skupiny a spustíme jeden příkaz, který může mít dva formáty

# pacman -Sg gambas3
# pacman -S --groups gambas3

Oba příkazy samozřejmě vyhodí abecedně řazený seznam s obsahem zadané skupiny bez číslování. V tuto chvíli se vrátíme k výše uvedené poznámce o použití/nepoužití příkazu sudo při zadávání příkazů správce souborů. V příkazech pro instalaci balíčků či skupin se musí použít administrátorské oprávnění, protože se tím mění stav systému. Naopak příkaz pro výpis obsahu skupiny žádnou změnu nepřináší (poskytuje pouze určitou informaci) a tak není potřeba se vydávat za administrátora. Pro správce pacman toto platí obecně i v dalších kategoriích příkazů. Pokud bychom spustili nějaký příkaz, kde se vyžadují práva admina bez nich, pacman nás na to upozorní a příkaz neprovede. Doposud jsme se věnovali instalacím balíčků z oficiálních repozitářů. Pacman ale umožňuje instalovat i lokálně nebo vzdáleně umístěné uživatelské balíčky (bez jejich přidávání do globální konfigurace). Tento typ příkazu se používá hlavně tehdy, když je nutné instalovat balíčky z AUR. Je možné použít tři různé varianty tohoto příkazu. První z nich instaluje připravený balíček z lokálního úložiště

# sudo pacman -U /path/to/package/package_name-version.pkg.tar.xz

Druhá varianta balíček neinstaluje, ale zkopíruje ho do vyrovnávací paměti správce balíčků. Takové balíčky už se pak mohou instalovat výše uvedenými příkazy stejně, jako kdyby byly v repozitářích:

# sudo pacman -U file:///path/to/package/package_name-version.pkg.tar.xz

Poslední variantou je instalace balíčku, který je umístěn na nějakém vzdáleném úložišti:

# sudo pacman -U http://www.example.com/repo/example.pkg.tar.xz

Odstraňování balíčků

Asi je každému jasné, že i tato operace je velmi důležitá a hlavně u začátečníků a „průzkumníků“ se může používat poměrně často. Základním příkazem pro odstranění balíčku je

# sudo pacman -R pkg4

Kromě této základní varianty nám pacman nabízí i další volby, které je možné najít v nápovědě. První z nich je odstranění nejen samotného balíčku, ale také jeho závislostí. Tedy přesněji řečeno všech závislostí konkrétního odstraňovaného balíčku, které nejsou potřebné pro ostatní instalované balíčky

# sudo pacman -Rs pkg4

Pro odstranění vybraného balíčku, jeho závislostí a všech instalovaných balíčků, které jsou na něm závislé, se může použít příkaz

# sudo pacman -Rsc pkg4

Použití tohoto příkazu může být velmi zrádné a někdy i katastrofální. Jedná se totiž o kaskádovou operaci, která může mazat závislé balíčky až do x-tého „kolena“ a pěkně tak nabořit systém. Proto se doporučuje pouze tehdy, když uživatel opravdu ví, co a jak provádí! Následující příkaz umožní odstranit balíček, který je vyžadován jiným balíčkem jako závislost, ale bez odstranění závislého balíčku

# sudo pacman -Rdd pkg4

Pacman při odstranění balíčků automaticky zachovává jejich konfigurační soubory a ukládá si je. Pokud bychom chtěli odstranit balíček včetně všech konfigurací, musíme použít příkaz

# sudo pacman -Rn pkg4

Asi nejčastější pak bude při běžném odstraňování nepotřebných balíčků kombinace výše uvedených voleb a příkaz

CS24_early

# sudo pacman -Rsn

Tímto bychom mohli uzavřít popis operace odstraňování balíčků a vlastně i celý dnešní díl. V příštím dílu budeme pokračovat v popisu operace aktualizace databáze balíčků a balíčků samotných.

Dnešní díl jsme věnovali dokončení instalace nového systému přidáním běžného uživatele, nastavením jeho uživatelského shellu a instalaci a konfiguraci zavaděče GRUB. Úspěšnost instalace jsme pak ověřili restartem instalačního systému a spuštěním systému nového, což se bez zádrhelů podařilo. Díl jsme pak zakončili úvodem do problematiky správy balíčků a popisem některých konkrétních příkazů. V příštím dílu se budeme věnovat dokončení kapitoly o správě balíčků. V první řadě doplníme další konkrétní příkazy pro manipulaci s balíčky a hlavně se budeme věnovat aktualizaci zrcadel pro uložení oficiálních repozitářů.

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

Autor článku