Linux: Kniha kouzel, vanilková příchuť 2.14 (15. července 2022)
Veškerá moc příkazové řádky/příkazového řádku přehledně, pro začátečníky i pokročilé

14. Správa balíčků

Řada 2.x vanilkové příchuti Linuxu: Knihy kouzel je od 15. července 2022 do 1. března 2025 ve stavu dlouhodobé pasivní údržby; nahlášené chyby budou opravovány, ale aktivní vývoj se již věnuje jiným projektům. Máte-li zájem pokračovat v tvorbě Linuxu: Knihy kouzel pro novější verze linuxových operačních systémů, kontaktujte autora nebo rovnou vytvořte odnož.

1. Úvod

Tématem této kapitoly jsou balíčkovací systémy dpkg, apt, PPA, Flatpak a Snap, používáné k instalaci a aktualizaci aplikací, knihoven a systémových součástí v distribuci Ubuntu.

Systém „dpkg“ (Debian PacKaGe manager) instaluje do systému balíčky typu .deb, hlídá, aby byly splněny závislosti mezi nimi, a eviduje, které soubory v systému patří ke kterému balíčku; díky tomu je umí také odinstalovat. Nekomunikuje online.

Systém „apt“ (Advanced Packaging Tool) je nadstavbou dpkg, která komunikuje se vzdáleným repozitářem balíčků typu .deb, stahuje potřebné balíčky a ověřuje jejich pravost. K instalaci je ovšem předává systému dpkg.

PPA je rozšíření „apt“, které umožňuje pohodlně přidávat mezi vzdálené zdroje apt repozitáře konkrétních vývojářů hostované firmou Canonical pro použití v distribuci Ubuntu. Balíčky z PPA jdou přímo od vývojářů a nejsou po cestě nikým dalším prověřovány, takže je vhodné používat pouze PPA velmi důvěryhodných vývojářů.

Flatpak je nový, moderní balíčkovací systém založený na sandboxingu a systému práv. Představuje dobrý, bezpečný a pohodlný způsob, jak na staré, ověřené verzi systému provozovat nejnovější verze vybraných programů.

Snap je nový balíčkovací systém firmy Canonical. Není dobře přijímán linuxovou komunitou z mnoha důvodů, především proto, že serverová část systému (repozitář) je proprietární (nesvobodná) a výhradně závislá na firmě Canonical; není možné vytvářet jiné repozitáře Snapu ani Snap nastavit tak, aby s firmou Canonical nekomunikoval.

2. Definice

  • Balíček je soubor obsahující neměnná data tvořící aplikaci, knihovnu apod. a metadata včetně případných závislostí na ostatních balíčcích.
  • Repozitář je ucelený sklad souvisejících balíčků. Může být dostupný buď online, nebo může být umístěný v systému souborů.
  • Repozitář APT se dělí na archivy („focal“, „focal-updates“, „focal-security“ atd.), ty se dělí na komponenty („main“, „universe“, „restricted“ a „multiverse“) a ty se dál dělí na sekce podle druhu softwaru. Komponenta main obsahuje svobodný software přímo podporovaný jsou součást Ubuntu, komponenta „universe“ obsahuje svobodný software udržovaný pouze komunitou, komponenta „restricted“ obsahuje nesvobodný software považovaný za podporovanou součást Ubuntu (typicky proprietární ovladače) a komponenta „multiverse“ obsahuje nesvobodný software neudržovaný komunitou.
  • Balíček je dostupný, pokud kterýkoliv v systému nakonfigurovaný repozitář nabízí balíček daného názvu a architektury. Balíček je známý, pokud je dostupný nebo v systému nainstalovaný.

2/1 Priority APT

Priorita je celočíselná hodnota přiřazovaná jednotlivým verzím balíčků systémem APT. Uživatel může její konfigurací ovlivnit, které verze balíčků a ze kterého repozitáře vybere APT k instalaci. Lze ji nastavit pro každou verzi každého balíčku zvlášť, ale obvykle se nastavuje pro větší celky, např. celé komponenty repozitářů.

  • Záporná čísla (např. -1) znamenají zákaz automatického výběru k instalaci. Verze balíčku bude ignorována.
  • Priorita 0 je zakázána; žádná verze ji nesmí mít.
  • 100 je priorita již nainstalovaných verzí.
  • 500 je výchozí priorita verzí z repozitářů kromě archivů „*-backports“ (ty mají 100).
  • 1000 (a víc) znamená, že daná verze přeinstaluje i novější verzi téhož balíčku.

3. Zaklínadla: DPKG a APT

3/1 Aktualizace

@aktualizovat informace o dostupných balíčcích (alternativy)#1
sudo aptitude update
sudo apt-get update
@aktualizovat všechny aktualizovatelné balíčky (alternativy)#2 (1)
sudo apt-get upgrade [-y] [--autoremove [--purge]]
sudo aptitude [-y] [--no-new-installs] safe-upgrade
@drasticky aktualizovat všechny aktualizovatelné balíčky (alternativy)#3
sudo apt-get dist-upgrade [-y] [--autoremove [--purge]]
sudo aptitude [-y] full-upgrade
@aktualizovat jen konkrétní balíčky a jejich závislosti#4
sudo apt-get install --only-upgrade balíček
@pokusit se napravit poškozené závislosti#5
sudo apt-get install --fix-broken

3/2 Instalace a odinstalace

@nainstalovat nový balíček včetně závislostí (vzdálený balíček/lokální soubor)#1
sudo apt-get install [-y] [--no-install-recommends] [--install-suggests] [-V] balíček
sudo apt-get install [-y] [--no-install-recommends] [--install-suggests] [-V] ./balíček.deb
@odinstalovat balíček (celosystémové konfigurační soubory smazat/ponechat)#2 (2)
sudo apt-get purge [--autoremove] balíček
sudo apt-get remove [--autoremove] balíček
@přeinstalovat (opravit) již nainstalovaný balíček#3
sudo apt-get reinstall balíček
@nainstalovat či aktualizovat zvolené balíčky a současně aktualizovat ostatní#4
sudo apt-get upgrade [-y] && sudo apt-get install [-y] [--autoremove [--purge]] balíček
@stáhnout balíčky do lokálních souborů .deb (bez závislostí/se závislostmi)#5
apt-get download balíček

3/3 Seznamy balíčků

@vypsat známé balíčky (pro člověka)#1
apt list
@vypsat všechny známé balíčky pro všechny architektury#2
aptitude search '?true'
@vypsat známé balíčky, filtrovat na základě kritérií#3
aptitude [-F formát] search 'vyhledávací podmínka' ['další vyhledávací podmínka']
@vypsat všechny dostupné balíčky (včetně dostupných verzí, pouze pro hlavní architekturu)#4
aptitude search --disable-columns -F $'%p\t%V' '?true' | egrep -v $'[^\t]*:[^\t]|[^\t]*\t<[^\t]*>(\t|$)'
@vypsat seznam nainstalovaných balíčků včetně verzí (pro člověka – alternativy)#5
apt list --installed
dpkg-query -l [| less]
@vypsat seznam nainstalovaných balíčků (pro skript – alternativy)#6
dpkg-query -Wf '${Package}:${Architecture}/${Version}/${db:Status-Status}\n' ['vzorek'] | egrep '/installed$'
(apt-mark showauto; apt-mark showmanual) | LC_ALL=C sort -u
aptitude --disable-columns -F formát search '?installed'
@vypsat seznam nainstalovaných balíčků podle místa zabraného na disku; od největšího po nejmenší (pro člověka)#7 (3)
dpkg-query -Wf '${Installed-Size}\t${Package}:${Architecture}\n' | sort -nr | less
@vypsat balíčky, pro které je dostupný upgrade (pro člověka/pro skript)#8 (4)
apt list --upgradable
aptitude search --disable-columns -F %p "?upgradable"
@vypsat balíčky, které by se skutečně upgradovaly#9
sudo apt-get upgrade --simulate | egrep "^Inst "
@vypsat nainstalovaný balíček vlastnící určitý příkaz#10
test -e "$(which příkaz)" && (dpkg-query -S "$(which příkaz)" | cut -d : -f 1)
@vypsat seznam balíčků (nainstalovaných/dostupných), kterým přísluší určitý soubor#11
dpkg-query -S vzorek
apt-file search -F "/celá/cesta"

3/4 Podrobné informace o balíčku

@vypsat podrobné informace o balíčku (dostupném/staženém)#1
apt-cache show balíček
dpkg-deb --info cesta/balíček.deb
@vybalit z balíčku soubory/řídicí soubory#2 (5)
dpkg-deb -x cesta/balíček.deb adresář/k/vytvoření
dpkg-deb -e cesta/balíček.deb adresář/k/vytvoření
@kolik místa na disku zabírá balíček? (pro člověka)#3
aptitude search -F %I '?name(balíček)' | head -n1
@vypsat seznam souborů a adresářů v systému, které kontroluje daný (nainstalovaný/dostupný/stažený) balíček#4 (6)
dpkg-query -L balíček
apt-file list balíček
dpkg-deb -c cesta/balíček.deb
@vypsat závislosti balíčku#5
apt-cache depends balíček

3/5 Zákaz aktualizace a označení „automaticky“

@vypsat zákazy instalace či aktualizace balíčku#1
apt-mark showhold
@vypsat balíčky předinstalované nebo instalované ručně#2
apt-mark showmanual
@vypsat balíčky instalované jen jako závislosti jiných balíčků#3
apt-mark showauto
@zakázat instalaci či aktualizaci balíčku/zrušit tento zákaz#4
sudo apt-mark hold balíček
sudo apt-mark unhold balíček
@označit balíček jako instalovaný ručně/automaticky#5
sudo apt-mark manual balíček
sudo apt-mark auto balíček

3/6 PPA

@přidat do zdrojů nové PPA/odebrat PPA#1
sudo add-apt-repository [-y] ppa:id-vývojáře/id-repozitáře
sudo add-apt-repository -r [-y] ppa:id-vývojáře/id-repozitáře
@vypsat seznam aktivních PPA#2
egrep -shx '\s*deb(\[[^]]*\])?\s*http://ppa.launchpad.net/.*' /etc/apt/sources.list /etc/apt/sources.list.d/*.list | cut -d / -f 4,5 | sed -E 's/.*/ppa:&/' | LC_ALL=C sort -u
@vypsat seznam balíčků dostupných z určitého PPA#3

3/7 Jádra

@vypsat seznam nainstalovaných jader#1
linux-version list
@vypsat seznam dostupných jader#2

3/8 Správa důvěryhodných klíčů

@přidat klíč jako důvěryhodný (ze souboru/ze standardního vstupu)#1
sudo apt-key add soubor
sudo apt-key add -
@odstranit klíč ze seznamu důvěryhodných#2
sudo apt-key del id-klíče
@vypsat seznam důvěryhodných klíčů (pro člověka, ne pro skript)#3
apt-key list

3/9 Offline provoz APT

@aktualizovat údaje o dostupných balíčcích (poprvé)#1 (7)
sudo apt-offline set pozadavek.sig --update
sudo apt-offline get pozadavek.sig --generate-changelog --bundle pozadavek.zip
sudo apt-offline install pozadavek.zip
@aktualizovat všechny balíčky#2
sudo apt-offline set pozadavek.sig
sudo apt-offline get pozadavek.sig --generate-changelog --bundle pozadavek.zip
sudo apt-offline install pozadavek.zip
sudo apt-get upgrade [-y]
@nainstalovat nové balíčky#3
sudo apt-offline set pozadavek.sig --install-packages balíček [další-balíček]
sudo apt-offline get pozadavek.sig --generate-changelog --bundle pozadavek.zip
sudo apt-offline install pozadavek.zip
sudo apt-get install balíček [další-balíček]

3/10 Odklonění

@odklonit soubor do nového umístění#1
sudo dpkg-divert --local [--rename] --divert /nové/umístění /původní/umístění
@zrušit odklon souboru#2
sudo dpkg-divert --remove /původní/umístění
@vypsat seznam odklonů#3
dpkg-divert --list \*
@odklonit soubor pro všechny balíčky kromě zadaného#4
sudo dpkg-divert --package balíček [--rename] --divert /nové/umístění /původní/umístění

3/11 Priority (/etc/apt/preferences.d)

Poznámka: v každé položce pole „Package“ a každé podmínce v poli „Pin“ včetně podmínky „origin“ lze místo konkrétního názvu použít vzorek (se zvláštními znaky „?“, „*“ a „[]“). V poli Package lze navíc použít také regulární výraz v lomíkách, např. „/^gimp/“; vybere balíčky, jejichž názvy výrazu odpovídají.

Použití: Vytvořte soubor v adresáři /etc/apt/preferences.d a zadejte do něj níže uvedené záznamy. Za každým záznamem musí být jedna či více prázdných řádek.

@vypsat priority repozitářů a balíčků (pro člověka; příkaz – zadejte do bashe)#1
apt-cache policy
@obecné nastavení priority balíčkům z určité domény#2
Package: *
Pin: origin "doména"
Pin-Priority: celé-číslo
@obecné nastavení priority podle dalších kritérií#3 (8)
Package: *
Pin: release [a=archiv,][c=komponenta,][b=architektura,][v=verze.Ubuntu]
Pin-Priority: celé-číslo
@konkrétní nastavení priority#4
Package: vzorek-názvu-balíčku [další-vzorek]
Pin: release [a=vzorek-archiv,][c=vzorek-komponenta,][b=vzorek-architektura,][v=vzorek.verze.Ubuntu]
Pin-Priority: celé-číslo
@pro konkrétní balíček kdekoliv#5
Package: název-balíčku
Pin: release a=*
Pin-Priority: celé-číslo
@pro konkrétní verzi konkrétního balíčku#6 (9)
Package: název-balíčku
Pin: version verze-balíčku
Pin-Priority: celé-číslo
@příklad obecného nastavení priority podle dalších kritérií#7
Package: *
Pin: release a=focal-*,c=universe
Pin-Priority: 50
@příklad: nastavit prioritu 99 balíčkům z archivů začínajících „xenial“ (např. xenial, xenial-updates atd.)#8
Package: *
Pin: release a=xenial*
Pin-Priority: 99
@příklad: nastavit prioritu -1 balíčkům ze všech poddomén (něco).ubuntu.com#9
Package: *
Pin: origin "*.ubuntu.com"
Pin-Priority: -1

3/12 Ostatní

@vybalit z balíčku DEB soubory programu/řídicí soubory#1 (10)
dpkg-deb -x balíček.deb cílový-adresář
dpkg-deb -e balíček.deb cílový-adresář
@přidat do zdrojů nový repozitář/odebrat repozitář#2
sudo add-apt-repository 'řádek sources.list'
sudo add-apt-repository -r 'řádek sources.list'
@zjistit hodnotu konfigurační volby APT#3
apt-config dump volba
@„velikonoční vajíčko“ v APT#4
apt-get moo

4. Zaklínadla (aptitude)

4/1 Vyhledávací podmínky

@hledání podle jména balíčku (alternativy)#1
?name("regulární-výraz")
?exact-name(přesné-jméno)
@hledání podle krátkého popisu balíčku#2
?description("regulární výraz")
@hledání podle architektury#3
?architecture(architektura)
@hledání podle archivu balíčku v repozitáři#4
?archive("regulární-výraz")
@hledání podle komponenty a sekce v repozitáři#5
?section("regulární-výraz")
@jen balíčky instalované ručně/automaticky#6
?and(?installed,?not(?automatic))
?automatic
@jen nainstalované balíčky#7
?installed
@logické operace mezi vzorky#8
?and(vzorek1,vzorek2)
?or(vzorek1,vzorek2)
?not(vzorek)
@balíčky, které by byly odstraněny operací „autoremove“#9
~g
@balíčky, pro které je dostupná novější verze/které mohou být upgradovány#10 (11)
?upgradable
@jen „nové“ balíčky#11
?new
@jen „virtuální“ balíčky#12
?virtual

4/2 Formát -F

Za znakem „=“ následuje příklad hodnoty pro balíček „gimp“.

@název balíčku#1 (12)
%p = gimp
@krátký popis balíčku#2
%d = GNU Image Manipulation Program
@architektura#3
%E = amd64
@verze (instalovaná/dostupná)#4 (13)(14)
%v = 2.10.18-1
%V = 2.10.18-1
@archiv balíčku v repozitáři#5 (15)
%t = focal
@komponenta a sekce balíčku#6
%s = universe/graphics
@velikost balíčku/velikost instalovaných souborů#7
%D = 4 286 kB
%I = 20,1 MB
@popis původu balíčku#8
%O = Ubuntu:20.04/focal [amd64]
@příznak automatické instalace#9 (16)
%M =

5. Zaklínadla: Flatpak

5/1 Časté úkony

Poznámka: „server“ je v uvedených příkazech zpravidla „flathub“.

@spustit program z balíčku#1
flatpak run balíček parametry
@aktualizovat všechny nainstalované balíčky/jen konkrétní#2
flatpak update
flatpak update balíček
@instalovat balíček#3
flatpak install [server] balíček
@odinstalovat balíček#4
flatpak uninstall balíček
@vypsat nainstalované balíčky#5
flatpak list
@hledat dostupné balíčky podle podřetězce#6
flatpak search podřetězec
@vypsat výchozí práva aplikace#7
flatpak info --show-permissions balíček
@vypsat podrobnější informace o balíčku (nainstalovaném/dostupném)#8 (17)
flatpak info balíček
flatpak remote-info server balíček[//verze]
@vypsat všechny dostupné balíčky aplikací/úplně všechny dostupné balíčky#9
flatpak remote-ls --app flathub
flatpak remote-ls --all flathub
@spustit program z balíčku bez přístupu k síti#10
flatpak run --unshare=network balíček
@spustit GIMP s přístupem jen ke čtení k většině systému souborů#11 (18)
flatpak run --nofilesystem=host --filesystem=host:ro org.gimp.GIMP

5/2 Správa vzdálených repozitářů

@přidat FlatHub#1
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
@přidat repozitář#2
flatpak remote-add [--if-not-exists] id-pro-repozitář URL
@odebrat repozitář#3
flatpak remote-delete id-repozitáře
@vypsat seznam repozitářů#4
flatpak remotes

5/3 Offline instalace

@příprava (na online počítači)#1
@instalace (na offline počítači)#2

6. Zaklínadla: Snap

6/1 Instalace, spuštění a odinstalace

@spustit program z balíčku#1
snap run balíček
@instalovat balíček#2
sudo snap install [--kanál] balíček
@odinstalovat balíček#3
sudo snap remove balíček
@vrátit balíček do stavu před posledním upgradem na novou verzi (neověřeno)#4
sudo snap revert balíček

6/2 Vypsat balíčky a informace o nich

@vypsat nainstalované balíčky#1
snap list
@vypsat seznam všech dostupných balíčků#2 (19)
for x in {a..z} {0..9}; do snap find [--narrow] $X | sed 1d; done | tr -s " " | sort -iu | sed "$(printf '%s/ /\\|/\n' s s s)" | column -nt -s $'\t' [> soubor]
@vypsat podrobnější informace o balíčku#3
snap info balíček
@vypsat spojení konektorů a slotů (všech/jen spojených)#4
snap connections --all
snap connections

6/3 Ostatní

@deaktivovat balíček/znovu ho aktivovat#1
sudo snap disable balíček
sudo snap enable balíček
@ručně připojit konektor balíčku do slotu jiného balíčku/rozpojit spojení#2
sudo snap connect balíček:jeho-konektor jiný-balíček:jeho-slot
sudo snap disconnect balíček:konektor-nebo-slot
@stáhnout balíček k offline instalaci#3 (20)(21)
snap download [--kanál] balíček
@nainstalovat balíček offline#4 (22)
sudo snap ack soubor_s_balíčkem.assert
sudo snap install soubor_s_balíčkem.snap

7. Instalace na Ubuntu

@Příkaz „aptitude“ (doporučuji)#1
sudo apt-get install aptitude
@Příkaz „apt-file“#2
sudo apt-get install apt-file &&sudo apt-file update

Poznámka: Neinstalujte balíček apt-file, pokud ho nevyužijete. Výrazně zvyšuje objem dat přednášených při každé aktualizaci (při každém „sudo apt-get update“)!

@Příkaz „apt-offline“#3
sudo apt-get install apt-offline
@Flatpak#4
sudo apt-get install flatpak [gnome-software-plugin-flatpak]
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Restartujte operační systém.
@Pro umožnění uživatelské instalace (parametr --user) spusťte z účtu příslušného uživatele navíc:#5
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Snap je základní součástí Ubuntu přítomnou v každé nové instalaci. Je možno ho odinstalovat tímto příkazem:

sudo apt-get purge --autoremove snapd

Ale začátečníkům to nedoporučuji, protože není zaručeno, že nová verze některé systémové součásti nebude Snap vyžadovat. Začátečníkům doporučuji Snap v systému ponechat, ale nepoužívat.

8. Ukázka

Instalace, spuštění a odinstalování GIMPu různými způsoby:

sudo apt-get update
sudo apt-get install -y gimp
gimp
Ukončete Gimp.
sudo apt-get remove -y gimp
apt-get download gimp
sudo apt-get install ./gimp*.deb
Odpovězte „a“.
gimp
Ukončete Gimp.
sudo apt-get remove -y gimp
sudo snap install gimp
snap run gimp
Ukončete Gimp.
sudo snap remove gimp
flatpak install flathub org.gimp.GIMP
Odpovězte kladně na všechny dotazy.
flatpak run org.gimp.GIMP
Ukončete Gimp.
flatpak remove org.gimp.GIMP
Potvrďte.

9. Tipy a zkušenosti

  • Co je špatně na Snapu: 1) Automatické updatování balíčků, které nelze vypnout. 2) Zatímco klientská část je svobodný software dostupný pro mnoho linuxových distribucí, serverová část je proprietární a může ji provozovat pouze firma Canonical, takže není možné vytvářet zrcadla repozitáře a při instalaci programů je uživatel závislý na firmě Canonical a připojení do USA. 3) Vzhledem k použítí SquashFS připojené snapy zaplevelují výpisy příkazů jako „mount“ a „df“ (Flatpak tímto netrpí).
  • Flatpak přistupuje poměrně benevolentně k přístupovým právům uživatelů. Umožňuje instalovat a odinstalovávat balíčky systémové instalace bez zadání hesla nejen superuživateli, ale také všem uživatelům, kteří jsou členy skupin admin a sudo. Ostatní uživatelům to umožní po zadání hesla administrujícího uživatele, dokonce i přesto, že sami nemají právo používat sudo.
  • Flatpak neprovádí automatickou aktualizaci balíčků.

9/1 Priority APT

Při výběru balíčku podle priorit postupuje APT následovně:

  • Pokud je již nějaká verze balíčku nainstalovaná, APT vyřadí kandidáty, kteří mají prioritu nižší než 1000 a jsou starší verze než nainstalovaná.
  • APT vyřadí balíčky se zápornou prioritou.
  • APT vybere balíček s nejvyšší prioritou.
  • Pokud je takových víc, vybere ten s nejvyšší verzí.
  • Pokud je takových víc, vybere ten ze zdroje, který je v sources.list uvedený nejdříve.

Při určování priorit z konfigurace v adresáři /etc/apt/preferences.d postupuje APT následovně:

  • Konkrétní pravidla mají přednost před obecnými (těmi, jejichž pole Package má hodnotu „*“).
  • Jinak má dříve uvedené pravidlo přednost před později uvedeným (a to i v případě, že později uvedené pravidlo je konkrétnější).

10. Další zdroje informací

Pro APT: „man apt-get“ apod. (ale není příliš přehledná) Pro Flatpak: „man flatpak“ a všechny odtud odkazované manuálové stránky, např. „man flatpak-install“. Pro Snap: „snap --help“ a „snap help podpříkaz“.

11. Zákulisí kapitoly

V této verzi kapitoly chybí:

  • offline instalace balíčků Flatpaku
  • uživatelské nastavení práv aplikací (pokryto nedostatečně)
  • dpkg-reconfigure
  • snap saved, snap forge, snap remove --purge, snap changes, snap set refresh.hold
  • apt search a apt-cache search

Tato kapitola záměrně nepokrývá:

  • vytváření balíčků či repozitářů; zrcadlením repozitářů
  • sestavování programů ze zdrojového kódu
  • instalaci balíčků jiného typu (rpm, tar.xz apod.)
1 Tyto příkazy při aktualizaci vynechají balíčky, které by svou aktualizací způsobily odstranění jiných balíčků. Pokud chcete aktualizovat i takové balíčky, použijte „drastickou aktualizaci“.
2 Ponechat celosystémové konfigurační soubory má smysl v případě, že chcete zachovat konfiguraci balíčku pro případ, že byste ho v budoucnu znovu nainstaloval/a. Uživatelskou konfiguraci programů (uloženou v domovských adresářích) APT ani DPKG odstranit neumí.
3 Velikosti jsou uvedeny v kilobajtech.
4 Poznámka: vypíše i balíčky, jejichž upgrade není možný např. kvůli konfliktu s jiným balíčkem.
5 Tip: k manipulaci se soubory v balíčku můžete také použít parametr --fsys-tarfile, který na standardní výstup příkazu vypíše soubory balíčku ve formátu „tar“, který můžete předat rourou příkazu „tar“.
6 Poznámka: Ve výpisu „dpkg-query -L“ se typicky objevují také společné adresáře jako /etc či /usr; není příliš spolehnutí na to, že jde pouze o soubory příslušné danému balíčku.
7 Příkazy „get“ se provádějí na online počítači a stáhnout vše, co je potřeba, do uvedeného archivu typu zip, příkazy „set“ a „install“ se spouštějí na offline počítači.
8 Na řádce „Pin“ musí být uvedena alespoň jedna podmínka. Podmínky se oddělují čárkou. Nastavení se uplatní u komponent archivů, které splní všechny uvedené podmínky.
9 Pozor, verze balíčku je zde verze, jak ji registruje DPKG, tedy např. „2.10.18-1build2“, není to pouhé číslo verze, jak ho intuitivně chápou uživatelé. Pravděpodobně budete chtít použít vzorek namísto zcela konkrétního řetězce.
10 Pokud zadaný adresář neexistuje, bude vytvořen.
11 Pozor! Tento filtr zahrne i balíčky, které nemohou být aktualizovány, protože tomu brání konflikt mezi balíčky nebo zákaz jejich instalace! Naopak nezahrnuje balíčky, které budou nově instalovány pouze pro splnění nově vzniklých závislostí. Proto tento filtr není tak praktický, jak by se mohl zdát.
12 Název balíčku jiné než výchozí architektury bude doplněn o architekturu, např. „gimp:i386“.
13 Je-li dostupných víc verzí balíčku, parametr %V vybere tu, která by se nejspíš instalovala.
14 Není-li instalovaná, resp. dostupná žádná verze, tyto parametry vypíšou „<žádná>“ a ignorují snahu o změnu lokalizace. Pro přenositelnost je proto doporučuji ve skriptech testovat proti regulárnímu výrazu „<.*>“ místo porovnání s konkrétní hodnotou.
15 Je-li dostupných víc verzí balíčku, tento parametr zohledňuje pouze nejnovější verzi. Je-li dostupná ve více archivech, vypíše parametr %t všechny dané archivy oddělené čárkou, typicky např. „focal-security,focal-updates“.
16 Pro balíčky instalované jen pro splnění závislosti jiného balíčku vypíše „A“, jinak vypíše prázdný řetězec.
17 Uvedení verze k balíčku je povinné, pokud je v repozitáři víc verzí téhož balíčku. Bez něj v takovém případě příkaz „flathub remote-info“ selže a vypíše dostupné verze.
18 K provedení tohoto příkazu musíte mít daný balíček nainstalovaný.
19 Poznámka: provedení tohoto příkazu může trvat i několik minut a vzhledem k velkému rozsahu vypsaných informací doporučuji výstup přesměrovat do souboru.
20 Kanál může být: edge, beta, candidate nebo stable.
21 Poznámka: tento příkaz stáhne pouze uvedený balíček, ne však jeho závislosti.
22 Pokud má balíček závislosti na dalších balíčcích, je potřeba nejprve nainstalovat je, jinak se je bude se snap-démon nainstalovat online.
Líbí se vám tento projekt a chcete, aby byl ještě lepší? Můžete mi s tím pomoci. Zmiňte se o něm technicky zdatným přátelům, opravte překlepy a nahlašte nefunkční zaklínadla, aby mohla být opravena; poskytněte mi zpětnou vazbu nebo se zapojte do vývoje nových kapitol. Další informace na GitHubu v dokumentu Jak se zapojit.
[BY-SA]

Veškerý obsah této stránky (text, obrázky, zdrojový kód) je možno upravovat a šířit pod podmínkami licence Creative Commons Attribution-ShareAlike 4.0 International. Upozorňuji, že uvedená licence vyžaduje uvedení seznamu autorů, licence a zdroje a poskytnutí stejné či kompatibilní licence k provedeným změnám, jsou-li nějaké. Příslušné údaje jsou dostupné na stránce „Přehled autorů“. Šíření obsahu bez těchto údajů nebo šíření upravené verze bez poskytnutí adekvátní licence k provedeným úpravám je pravděpodobně porušení licenčních podmínek a může být postihováno. Poskytování zdrojového kódu při šíření není touto licencí vyžadováno.

Pro nové verze, další informace, aktuální zdrojový kód a možnost se zapojit do projektu „Linux: Kniha kouzel“ navštivte jeho repozitář na GitHubu.