Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Správa balíčků pomocí apt

Modul 4: Software a aktualizace · Doba čtení: 10 min.

Cíl lekce: Po této lekci budete umět instalovat, aktualizovat a odebírat software pomocí apt, uvidíte, odkud balíček pochází, a poznáte, které aktualizace jsou bezpečnostní.

Klíčové pojmy: balíček, zdroj balíčků (repozitář), sources.list, soubor .sources (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, bezpečnostní zdroj, dnf

Proč správce balíčků?

Ve Windows si stáhnete instalační program z webové stránky. Na linuxovém serveru to neděláte téměř nikdy. Software přichází jako balíček ze zdroje balíčků (repozitáře): ze serveru distribuce s tisíci programů, které jsou všechny sestavené a otestované pro Vaši verzi Debianu nebo Ubuntu. Program, který tyto balíčky stahuje, instaluje a aktualizuje, se nazývá správce balíčků. Na Debianu a Ubuntu je to apt (pod ním pracuje dpkg), na AlmaLinuxu a Rocky Linuxu dnf.

To má tři velké výhody:

  1. Jeden příkaz aktualizuje vše. Webový server, SSH server, knihovny i jádro pocházejí ze stejného zdroje. Nemusíte u každého programu zvlášť kontrolovat na webu, zda existuje nová verze.
  2. Původ je ověřený. Každý zdroj balíčků je podepsán klíčem. apt odmítne balíčky, jejichž podpis nesedí.
  3. Závislosti se řeší samy. Potřebuje-li nginx nějakou knihovnu, apt ji automaticky doinstaluje a později ji zase uklidí.

Zdroje balíčků: odkud software pochází?

Které zdroje apt používá, je uvedeno v /etc/apt/. Dlouho to byl jediný soubor sources.list s řádky jako:

deb http://deb.debian.org/debian bookworm main

Ubuntu 24.04 a novější, cloudové obrazy Debianu a stále více nových instalací používají novější formát deb822: samostatné soubory s příponou .sources v /etc/apt/sources.list.d/. Starý sources.list lze převést příkazem sudo apt modernize-sources (apt 3, Debian 13). Například na Debianu 13:

anna@web1:~$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Čtěte to takto: suite je verze (trixie je Debian 13; noble je Ubuntu 24.04), komponenta je část zdroje (main u Debianu; main, universe, restricted a multiverse u Ubuntu) a Signed-By říká, kterým klíčem musí být zdroj podepsán. To poslední je důležité: klíč patří k jednomu zdroji, ne ke všem zdrojům najednou. Pokud později přidáte zdroj od výrobce (Docker, Caddy, PostgreSQL), dostane vlastní soubor s klíčem a vlastní řádek Signed-By (lekce 9.2).

Zdroj s -security v názvu je bezpečnostní zdroj. Odtud přicházejí bezpečnostní aktualizace, většinou ještě týž den, kdy se zranitelnost stane známou. Na Ubuntu se tato suite jmenuje noble-security (nebo podle názvu Vaší verze).

Pokud stále používáte starý sources.list, vše normálně funguje. Jen nekombinujte stejný zdroj v obou formátech, jinak si apt bude stěžovat na duplicitní řádky.

update, upgrade a full-upgrade

Rozdíl mezi těmito třemi pojmy je pro začátečníky první past.

PříkazCo dělá
apt updateStáhne seznam balíčků a verzí, které jsou ve zdrojích k dispozici. Nic neinstaluje.
apt upgradeAktualizuje nainstalované balíčky na nejnovější verzi z tohoto seznamu. Nikdy nic neodebírá. Aktualizace, která by vyžadovala odebrání jiného balíčku, se přeskočí.
apt full-upgradeTotéž, ale smí v případě potřeby i odebírat balíčky nebo instalovat nové. Je nutný při upgradu na nové vydání (lekce 4.3) a někdy u nového jádra.

Takže vždy nejprve update, potom upgrade:

anna@web1:~$ sudo apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
...
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
anna@web1:~$ apt list --upgradable
Listing... Done
libssl3t64/trixie-security 3.5.1-1+deb13u1 amd64 [upgradable from: 3.5.1-1]
openssh-server/trixie-security 1:10.0p1-7+deb13u1 amd64 [upgradable from: 1:10.0p1-7]
tzdata/trixie-updates 2026b-0+deb13u1 all [upgradable from: 2026a-0+deb13u1]

(Čísla verzí výše jsou příklad.) Za názvem je uvedeno, ze které suite nová verze pochází. Vše s -security je bezpečnostní aktualizace: tu chcete co nejdříve. -updates jsou ostatní stabilní aktualizace, například nová data časových pásem.

Poté:

anna@web1:~$ sudo apt upgrade

apt ukáže, co se změní, a požádá o potvrzení. Tento seznam si přečtěte. Pokud se v něm objeví "The following packages will be REMOVED" (následující balíčky budou odebrány), děje se něco neobvyklého a nejprve budete chtít vědět proč.

Instalace, odebrání a úklid

anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx       # program odstraněn, konfigurace v /etc zůstává
anna@web1:~$ sudo apt purge nginx        # program i konfigurace odstraněny
anna@web1:~$ sudo apt autoremove         # uklidit, co už nikdo nepotřebuje

Rozdíl mezi remove a purge se hodí: chcete-li něco dočasně odebrat a později znovu nainstalovat se stejným nastavením, použijte remove. Chcete-li opravdu začít načisto, použijte purge.

Vyhledávání a další informace:

anna@web1:~$ apt search fail2ban
anna@web1:~$ apt show fail2ban
anna@web1:~$ apt-cache policy openssh-server
openssh-server:
  Installed: 1:10.0p1-7
  Candidate: 1:10.0p1-7+deb13u1
  Version table:
     1:10.0p1-7+deb13u1 500
        500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
 *** 1:10.0p1-7 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages

apt-cache policy je příkaz, který použijete, když chcete zjistit, odkud balíček pochází a kterou verzi apt zvolí. *** je u nainstalované verze, Candidate je to, co by nainstaloval upgrade.

Verze Debianu a verze programu

Častá stížnost: "V Debianu je stará verze nginx." To je pravda a je to tak záměrně. Debian a Ubuntu při vydání zmrazí verze a poté přidávají jen bezpečnostní opravy a opravy závažných chyb, bez nových funkcí. Proto může balíček se "starým" číslem verze přesto obsahovat všechny nedávné bezpečnostní opravy: ty byly zpětně přeneseny (backport) do staré verze. Poznáte to podle přípony, například +deb13u1 nebo ubuntu0.1.

Při posuzování, zda jste zranitelní, proto nikdy neporovnávejte jen číslo verze s webem výrobce. Sledujte bezpečnostní hlášení své distribuce: Debian Security Tracker (security-tracker.debian.org) a Ubuntu Security Notices (ubuntu.com/security/notices) u každé zranitelnosti uvádějí, zda je Vaše verze opravená.

Několik pravidel pro klidný server

  • Instalujte jen to, co potřebujete. Každý balíček je kód, který je třeba aktualizovat, a někdy i služba, která naslouchá (lekce 5.1).
  • Raději z distribuce než z webu. Program, který si sami zkompilujete nebo stáhnete jako samostatný soubor, apt upgrade neaktualizuje. Bezpečnostní hlášení pak musíte sledovat sami.
  • Další zdroj jen přímo od výrobce, s vlastním klíčem a Signed-By. Nikdy nepřidávejte klíč "pro všechno" a nikdy zdroj z neznámého webu (lekce 4.3).
  • Čtěte, na co se apt ptá. Při upgradu se apt může zeptat, zda chcete změněný konfigurační soubor nahradit novou verzí od výrobce. Pokud nevíte, co jste v něm změnili, zvolte "keep the local version" (ponechat místní verzi, výchozí volba) a rozdíl si později prohlédněte pomocí diff: nová verze leží vedle jako .dpkg-dist.

Na AlmaLinuxu a Rocky Linuxu

Tam se správce balíčků jmenuje dnf a balíčky mají formát .rpm. Příkazy se podobají těm z apt: dnf check-update (seznam), dnf upgrade (aktualizace, update a upgrade v jednom), dnf install, dnf remove, dnf info. Zdroje jsou v /etc/yum.repos.d/*.repo. Mnoho dalšího softwaru (například fail2ban) pochází ze samostatného zdroje EPEL, který nejprve zapnete příkazem dnf install epel-release. Jen bezpečnostní aktualizace zobrazíte příkazem dnf updateinfo list --security.

V praxi: obrazovka VPS

U WebOké, stejně jako u většiny jiných poskytovatelů, nastaví instalace Vašeho VPS standardní zdroje distribuce správně. Většinou na nich nemusíte nic měnit. Server aktualizujte hned po prvním přihlášení pomocí apt update a apt upgrade (lekce 1.2) a před velkými změnami si v panelu svého poskytovatele vytvořte snapshot.

Shrnutí

  • Software na Debianu a Ubuntu pochází z podepsaných zdrojů balíčků; apt stahuje, instaluje, aktualizuje a uklízí.
  • apt update jen stáhne seznam; apt upgrade aktualizuje bez odebírání; apt full-upgrade smí i odebírat.
  • Bezpečnostní aktualizace pocházejí ze suite s -security v názvu; apt list --upgradable a apt-cache policy ukazují, odkud verze pochází.
  • Staré číslo verze s +deb13u1 nebo ubuntu0.x může obsahovat všechny opravy (backport): sledujte bezpečnostní hlášení své distribuce.
  • Další zdroj jen přímo od výrobce, s vlastním klíčem v Signed-By.

Kvíz

1. Na serveru, na kterém jste týden nic nedělali, zadáte sudo apt upgrade a apt hlásí, že je vše aktuální. Přesto víte, že včera vyšla aktualizace OpenSSH. Jaké je nejpravděpodobnější vysvětlení?



2. Jaký je rozdíl mezi apt remove a apt purge?



3. V apt list --upgradable je uvedeno openssh-server/noble-security .... Co říká část noble-security?



4. Na webu programu je uvedena verze 2.8, zatímco Debian dodává 2.6 s +deb13u2. Kolega říká: "Debian je tedy zranitelný vůči všem chybám opraveným ve 2.7 a 2.8." Co platí?



5. Proč k dalšímu zdroji balíčků patří vlastní klíč s Signed-By?



Úkol

Úkol Z4.1: Které aktualizace jsou bezpečnostní? V ukázkovém souboru apt-upgradable.txt je výstup příkazů apt list --upgradable a apt-cache policy ze serveru s Debianem 13. Odpovězte: které balíčky pocházejí z bezpečnostního zdroje, který balíček pochází ze zdroje výrobce místo z Debianu, která verze openssh-server je nyní nainstalovaná a který balíček je běžná stabilní aktualizace bez bezpečnostního důvodu? Program Vaše odpovědi porovná s pevně daným klíčem. Pokud už máte vlastní server, spusťte stejné příkazy a podívejte se, co uvidíte.

Úkol Z4.1: Které aktualizace jsou bezpečnostní?

Soubor k tomuto úkolu: apt-upgradable.txt





Co vyplníte a co zjistíme, neukládáme. Váš prohlížeč si pamatuje Vaše odpovědi a to, zda jste úkol splnili. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol měli (téměř) správně; i to tam můžete odstranit.

Doporučujeme k přečtení

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…