Modul 4 · 4.1
Slovenčina
Správa balíkov pomocou apt
Modul 4: Softvér a aktualizácie · Čas čítania: 10 minút
Cieľ lekcie: Po tejto lekcii dokážete inštalovať, aktualizovať a odstraňovať softvér pomocou apt, zistíte, odkiaľ balík pochádza, a rozpoznáte, ktoré aktualizácie sú bezpečnostné.
Kľúčové pojmy: balík, zdroj balíkov (repozitár), sources.list, súbor .sources (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, bezpečnostný zdroj, dnf
Prečo správca balíkov?
Vo Windows si inštalačný program stiahnete z webovej stránky. Na linuxovom serveri to nerobíte takmer nikdy. Softvér prichádza ako balík zo zdroja balíkov (repozitára): je to server distribúcie s tisíckami programov, ktoré sú všetky zostavené a otestované pre vašu verziu Debianu alebo Ubuntu. Program, ktorý tieto balíky sťahuje, inštaluje a aktualizuje, sa nazýva správca balíkov. Na Debiane a Ubuntu je to apt (pod ním dpkg), na AlmaLinux a Rocky Linux dnf.
To má tri veľké výhody:
- Jeden príkaz aktualizuje všetko. Webový server, SSH server, knižnice aj jadro pochádzajú z rovnakého zdroja. Nemusíte pri každom programe zvlášť kontrolovať na webe, či vyšla nová verzia.
- Pôvod je overený. Každý zdroj balíkov je podpísaný kľúčom. apt odmietne balíky, ktorých podpis nesedí.
- Závislosti sa riešia automaticky. Ak nginx potrebuje knižnicu, apt ju automaticky doinštaluje a neskôr ju aj odstráni.
Zdroje balíkov: odkiaľ to pochádza?
Ktoré zdroje apt používa, je uvedené v /etc/apt/. Dlho to bol jediný súbor sources.list s riadkami ako:
deb http://deb.debian.org/debian bookworm mainUbuntu 24.04 a novšie, cloudové obrazy Debianu a čoraz viac nových inštalácií používajú novší formát deb822: samostatné súbory s príponou .sources v /etc/apt/sources.list.d/. Starý sources.list môžete previesť príkazom sudo apt modernize-sources (apt 3, Debian 13). Napríklad na Debiane 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Čítajte to takto: suite je verzia (trixie je Debian 13; noble je Ubuntu 24.04), component je časť zdroja (main pri Debiane; main, universe, restricted a multiverse pri Ubuntu) a Signed-By určuje, ktorým kľúčom musí byť zdroj podpísaný. To posledné je dôležité: kľúč patrí k jednému zdroju, nie ku všetkým zdrojom naraz. Ak neskôr pridáte zdroj od výrobcu (Docker, Caddy, PostgreSQL), dostane vlastný súbor s kľúčom a vlastný riadok Signed-By (lekcia 9.2).
Zdroj s -security v názve je bezpečnostný zdroj. Z neho prichádzajú bezpečnostné aktualizácie, väčšinou v ten istý deň, keď sa zraniteľnosť zverejní. Na Ubuntu sa táto suite volá noble-security (alebo podľa názvu vašej verzie).
Ak ešte používate starý sources.list, všetko funguje normálne. Len nemiešajte ten istý zdroj v oboch formátoch, pretože apt sa potom sťažuje na duplicitné riadky.
update, upgrade a full-upgrade
Rozdiel medzi týmito tromi pojmami je prvá pasca pre začiatočníkov.
| Príkaz | Čo robí |
|---|---|
apt update | Stiahne zoznam balíkov a verzií, ktoré sú v zdrojoch. Nič neinštaluje. |
apt upgrade | Aktualizuje nainštalované balíky na najnovšiu verziu z tohto zoznamu. Nikdy nič neodstráni. Aktualizácia, ktorá by vyžadovala odstránenie iného balíka, sa preskočí. |
apt full-upgrade | To isté, ale v prípade potreby smie balíky aj odstrániť alebo nainštalovať nové. Potrebné pri upgrade na nové vydanie (lekcia 4.3) a niekedy pri novom jadre. |
Preto vždy najprv 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 verzií vyššie sú len príklad.) Za názvom je uvedené, z ktorej suite nová verzia pochádza. Všetko s -security je bezpečnostná aktualizácia: tú chcete čo najskôr. -updates sú ostatné stabilné aktualizácie, napríklad nové údaje o časových pásmach.
Potom:
anna@web1:~$ sudo apt upgradeapt zobrazí, čo sa zmení, a požiada o potvrdenie. Tento zoznam si prečítajte. Ak sa v ňom objaví „The following packages will be REMOVED“ (tieto balíky budú odstránené), deje sa niečo neobvyklé a najprv chcete vedieť prečo.
Inštalácia, odstránenie a upratanie
anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx # program odstránený, konfigurácia v /etc zostáva
anna@web1:~$ sudo apt purge nginx # program aj konfigurácia odstránené
anna@web1:~$ sudo apt autoremove # vyčistiť to, čo už nikto nepotrebujeRozdiel medzi remove a purge je užitočný: ak chcete niečo dočasne odstrániť a neskôr znova nainštalovať s rovnakými nastaveniami, použite remove. Ak chcete naozaj začať odznova, purge.
Vyhľadávanie a ďalšie informácie:
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 Packagesapt-cache policy je príkaz, ktorý použijete, keď chcete zistiť, odkiaľ balík pochádza a ktorú verziu apt zvolí. *** je pri nainštalovanej verzii, Candidate je to, čo by nainštaloval upgrade.
Verzie Debianu a verzia programu
Častá sťažnosť: „V Debiane je stará verzia nginx.“ Je to pravda a je to zámer. Debian a Ubuntu zmrazia verzie pri vydaní a potom pridávajú len bezpečnostné opravy a opravy vážnych chýb, bez nových funkcií. Preto môže mať balík so „starým“ číslom verzie aj tak všetky nedávne bezpečnostné opravy: tie sú spätne prenesené (backport) do starej verzie. Spoznáte to podľa prípony, napríklad +deb13u1 alebo ubuntu0.1.
Preto nikdy neporovnávajte len číslo verzie s webom výrobcu, keď posudzujete, či ste zraniteľní. Pozrite sa na bezpečnostné oznámenia vašej distribúcie: Debian Security Tracker (security-tracker.debian.org) a Ubuntu Security Notices (ubuntu.com/security/notices) uvádzajú pri každej zraniteľnosti, či je vaša verzia opravená.
Niekoľko pravidiel pre pokojný server
- Inštalujte len to, čo potrebujete. Každý balík je kód, ktorý treba aktualizovať, a niekedy aj služba, ktorá počúva (lekcia 5.1).
- Radšej z distribúcie než z webovej stránky. Program, ktorý si sami skompilujete alebo stiahnete ako samostatný súbor,
apt upgradeneaktualizuje. Bezpečnostné oznámenia potom musíte sledovať sami. - Ďalší zdroj len priamo od výrobcu, s vlastným kľúčom a
Signed-By. Nikdy nepridávajte kľúč „pre všetko“ a nikdy zdroj z neznámej webovej stránky (lekcia 4.3). - Čítajte, na čo sa apt pýta. Pri upgrade sa apt môže opýtať, či chcete zmenený konfiguračný súbor nahradiť novou verziou od výrobcu. Ak neviete, čo ste v ňom menili, zvoľte „keep the local version“ (ponechať lokálnu verziu, predvolené) a rozdiel si neskôr pozrite pomocou
diff: nová verzia je uložená vedľa ako.dpkg-dist.
Na AlmaLinux a Rocky Linux
Tam sa správca balíkov volá dnf a balíky sú .rpm. Príkazy sa podobajú na apt: dnf check-update (zoznam), dnf upgrade (aktualizácia, update a upgrade v jednom), dnf install, dnf remove, dnf info. Zdroje sú v /etc/yum.repos.d/*.repo. Veľa ďalšieho softvéru (napríklad fail2ban) pochádza zo samostatného zdroja EPEL, ktorý najprv zapnete pomocou dnf install epel-release. Len bezpečnostné aktualizácie zobrazíte pomocou dnf updateinfo list --security.
V praxi: obrazovka VPS
Vo WebOké, rovnako ako u väčšiny iných poskytovateľov, inštalácia vášho VPS už správne nastaví štandardné zdroje distribúcie. Spravidla na nich nemusíte nič meniť. Server aktualizujte hneď po prvom prihlásení pomocou apt update a apt upgrade (lekcia 1.2) a pred väčšími zmenami si vytvorte snapshot v paneli vášho poskytovateľa.
Zhrnutie
- Softvér na Debiane a Ubuntu pochádza z podpísaných zdrojov balíkov; apt sťahuje, inštaluje, aktualizuje a upratuje.
apt updatelen stiahne zoznam;apt upgradeaktualizuje bez odstraňovania;apt full-upgradesmie aj odstraňovať.- Bezpečnostné aktualizácie pochádzajú zo suite s
-securityv názve;apt list --upgradableaapt-cache policyukážu, odkiaľ verzia pochádza. - Staré číslo verzie s
+deb13u1aleboubuntu0.xmôže obsahovať všetky opravy (backport): pozrite sa na bezpečnostné oznámenia vašej distribúcie. - Ďalší zdroj len priamo od výrobcu, s vlastným kľúčom v
Signed-By.
Kvíz
Úloha
Úloha Z4.1: Ktoré aktualizácie sú bezpečnostné? V ukážkovom súbore apt-upgradable.txt je výstup príkazov apt list --upgradable a apt-cache policy zo servera s Debianom 13. Odpovedzte: ktoré balíky pochádzajú z bezpečnostného zdroja, ktorý balík pochádza zo zdroja výrobcu namiesto Debianu, ktorá verzia openssh-server je teraz nainštalovaná a ktorý balík je bežná stabilná aktualizácia bez bezpečnostného dôvodu? Program odpovede porovná s pevným kľúčom. Ak už máte vlastný server, spustite tie isté príkazy a pozrite sa, čo uvidíte.
Ďalšie čítanie
- Zabezpečenie VPS: prvých päť minút
- Začíname s vaším VPS
- Príručka správcu Debianu, kapitola 6 (apt): https://debian-handbook.info/browse/stable/apt.html
- Manuál
sources.list(5)(formát deb822): https://manpages.debian.org/trixie/apt/sources.list.5.en.html - Debian Security Tracker: https://security-tracker.debian.org/tracker/
