Modul 4 · 4.1
Csomagkezelés az apt segítségével
Modul 4: Szoftverek és frissítések · Olvasási idő: 10 perc
Tanulási cél: A lecke után Ön képes lesz szoftvereket telepíteni, frissíteni és eltávolítani az apt segítségével, látni fogja, honnan származik egy csomag, és felismeri, mely frissítések biztonsági frissítések.
Kulcsfogalmak: csomag, csomagforrás (repository), sources.list, .sources-fájl (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, biztonsági forrás, dnf
Miért van szükség csomagkezelőre?
Windowson egy weboldalról tölt le telepítőprogramot. Linux-szerveren ezt szinte soha nem teszi. A szoftver csomagként érkezik egy csomagforrásból (repository): ez a disztribúció egy szervere több ezer programmal, amelyeket mind az Ön Debian- vagy Ubuntu-verziójához építettek és teszteltek. Azt a programot, amely ezeket a csomagokat letölti, telepíti és frissíti, csomagkezelőnek nevezzük. Debianon és Ubuntun ez az apt (alatta a dpkg dolgozik), AlmaLinuxon és Rocky Linuxon a dnf.
Ennek három nagy előnye van:
- Egyetlen parancs mindent frissít. A webszerver, az SSH-szerver, a programkönyvtárak és a kernel ugyanabból a forrásból érkeznek. Nem kell programonként egy weboldalon ellenőriznie, van-e új verzió.
- A származás ellenőrzött. Minden csomagforrás egy kulccsal van aláírva. Az apt elutasítja azokat a csomagokat, amelyek aláírása nem stimmel.
- A függőségeket a rendszer kezeli. Ha az nginxnek szüksége van egy programkönyvtárra, az apt automatikusan telepíti mellé, és később el is takarítja.
A csomagforrások: honnan származik a szoftver?
Hogy az apt mely forrásokat használja, az a /etc/apt/ helyen található. Sokáig ez egyetlen sources.list fájl volt, ilyen sorokkal:
deb http://deb.debian.org/debian bookworm mainAz Ubuntu 24.04 és az újabb verziók, a Debian cloud-image-ei és egyre több új telepítés az újabb deb822 formátumot használja: különálló, .sources kiterjesztésű fájlokat a /etc/apt/sources.list.d/ mappában. Egy régi sources.list fájlt a sudo apt modernize-sources paranccsal lehet átalakítani (apt 3, Debian 13). Például Debian 13 alatt:
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Így olvassa: a suite a verzió (a trixie a Debian 13, a noble az Ubuntu 24.04), a component a forrás egy része (Debiannál main; Ubuntunál main, universe, restricted és multiverse), a Signed-By pedig megadja, melyik kulccsal kell a forrásnak aláírva lennie. Ez utóbbi fontos: egy kulcs egyetlen forráshoz tartozik, nem az összes forráshoz egyszerre. Ha később egy gyártó forrását adja hozzá (Docker, Caddy, PostgreSQL), az saját kulcsfájlt és saját Signed-By sort kap (9.2. lecke).
Az a forrás, amelynek a nevében -security szerepel, a biztonsági forrás. Innen érkeznek a biztonsági frissítések, többnyire ugyanazon a napon, amikor egy sérülékenység nyilvánosságra kerül. Ubuntun ennek a suite-nak a neve noble-security (vagy az Ön verziójának neve).
Ha még a régi sources.list fájlt használja, minden ugyanúgy működik. Csak ugyanazt a forrást ne adja meg mindkét formátumban, mert akkor az apt duplikált sorokra panaszkodik.
update, upgrade és full-upgrade
E három fogalom közötti különbség a kezdők első buktatója.
| Parancs | Mit csinál |
|---|---|
apt update | Letölti a listát arról, milyen csomagok és verziók vannak a forrásokban. Semmit nem telepít. |
apt upgrade | A telepített csomagokat a lista legújabb verziójára frissíti. Soha nem töröl semmit. Az a frissítés, amelyhez egy másik csomagot el kellene távolítani, kimarad. |
apt full-upgrade | Ugyanez, de szükség esetén csomagokat el is távolíthat vagy újakat telepíthet. Kiadásfrissítésnél (4.3. lecke) és néha új kernelnél szükséges. |
Tehát mindig előbb update, utána 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](A fenti verziószámok csak példák.) A név után látható, melyik suite-ból érkezik az új verzió. Minden, amiben -security szerepel, biztonsági frissítés: ezeket a lehető leghamarabb érdemes telepíteni. A -updates egyéb stabil frissítéseket jelöl, például új időzóna-adatokat.
Ezután:
anna@web1:~$ sudo apt upgradeAz apt megmutatja, mi változik, és megerősítést kér. Olvassa el ezt a listát. Ha az áll benne, hogy "The following packages will be REMOVED" (a következő csomagok el lesznek távolítva), akkor valami különös történik, és érdemes előbb kideríteni, miért.
Telepítés, eltávolítás és takarítás
anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx # a program törölve, a konfiguráció az /etc alatt megmarad
anna@web1:~$ sudo apt purge nginx # a program és a konfiguráció törölve
anna@web1:~$ sudo apt autoremove # a már senkinek sem szükséges csomagok eltávolításaA remove és a purge közötti különbség hasznos: ha valamit csak ideiglenesen távolítana el, és később ugyanazokkal a beállításokkal telepítené újra, használja a remove parancsot. Ha valóban tiszta lappal szeretne kezdeni, a purge parancsot.
Keresés és további információ:
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 PackagesA apt-cache policy az a parancs, amelyet akkor használ, ha tudni szeretné, honnan származik egy csomag, és melyik verziót fogja az apt választani. A *** a telepített verziónál áll, a Candidate pedig az, amit egy upgrade telepítene.
Debian-verziók és egy program verziója
Gyakori panasz: "A Debianban régi nginx-verzió van." Ez igaz, és szándékosan van így. A Debian és az Ubuntu egy kiadás megjelenésekor befagyasztja a verziókat, és utána csak biztonsági javításokat és súlyos hibák javításait adja hozzá, új funkciókat nem. Ezért egy "régi" verziószámú csomag is tartalmazhatja az összes friss biztonsági javítást: ezeket visszaportolták (backport) a régi verzióba. Ezt az utótagról ismeri fel, például +deb13u1 vagy ubuntu0.1.
Ezért soha ne csak a verziószámot vesse össze a gyártó weboldalával, amikor azt mérlegeli, sérülékeny-e a rendszere. Nézze meg a disztribúciója biztonsági közleményeit: a Debian Security Tracker (security-tracker.debian.org) és az Ubuntu Security Notices (ubuntu.com/security/notices) sérülékenységenként megmutatja, hogy az Ön verziója javítva van-e.
Néhány szabály a nyugodt szerverüzemeltetéshez
- Csak azt telepítse, amire szüksége van. Minden csomag olyan kód, amelyet frissíteni kell, és néha egy figyelő szolgáltatás is (5.1. lecke).
- Inkább a disztribúcióból, mint egy weboldalról. Azt a programot, amelyet saját maga fordít le vagy különálló fájlként tölt le, a
apt upgradenem frissíti. Ilyenkor Önnek kell követnie a biztonsági közleményeket. - Extra forrást csak magától a gyártótól, saját kulccsal és
Signed-Bybeállítással. Soha ne adjon hozzá "mindenre érvényes" kulcsot, és soha ne használjon ismeretlen weboldalról származó forrást (4.3. lecke). - Olvassa el, mit kérdez az apt. Upgrade közben az apt megkérdezheti, hogy egy módosított konfigurációs fájlt lecseréljen-e a gyártó új verziójára. Ha nem tudja, mit módosított benne, válassza a "keep the local version" lehetőséget (az alapértelmezettet), és később a
diffparanccsal nézze meg a különbséget: az új verzió mellette található.dpkg-distnéven.
AlmaLinuxon és Rocky Linuxon
Ott a csomagkezelő neve dnf, a csomagok pedig .rpm formátumúak. A parancsok hasonlítanak az apt parancsaira: dnf check-update (a lista), dnf upgrade (frissítés, az update és az upgrade egyben), dnf install, dnf remove, dnf info. A források a /etc/yum.repos.d/*.repo helyen találhatók. Sok extra szoftver (például a fail2ban) a külön EPEL forrásból érkezik, amelyet előbb a dnf install epel-release paranccsal kell bekapcsolni. Csak a biztonsági frissítéseket a dnf updateinfo list --security paranccsal lehet megjeleníteni.
A gyakorlatban: a VPS-felület
A WebOké-nál, és a legtöbb más szolgáltatónál is, a VPS telepítése már helyesen beállítja a disztribúció alapértelmezett forrásait. Ezeken általában nem kell változtatnia. Az első bejelentkezés után azonnal frissítse a szervert a apt update és a apt upgrade paranccsal (1.2. lecke), és nagyobb módosítások előtt készítsen pillanatképet (snapshot) a szolgáltatója paneljén.
Összefoglalás
- Debianon és Ubuntun a szoftver aláírt csomagforrásokból érkezik; az apt letölti, telepíti, frissíti és eltakarítja.
- A
apt updatecsak a listát tölti le; aapt upgradeeltávolítás nélkül frissít; aapt full-upgradeel is távolíthat. - A biztonsági frissítések abból a suite-ból érkeznek, amelynek nevében
-securityszerepel; aapt list --upgradableés aapt-cache policymegmutatja, honnan származik egy verzió. - Egy
+deb13u1vagyubuntu0.xutótagú régi verziószám is tartalmazhatja az összes javítást (backport): nézze meg a disztribúciója biztonsági közleményeit. - Extra forrást csak magától a gyártótól, saját kulccsal a
Signed-Bybeállításban.
Kvíz
Feladat
Feladat Z4.1: Mely frissítések biztonsági frissítések? A apt-upgradable.txt példafájl egy Debian 13-as szerver apt list --upgradable és apt-cache policy kimenetét tartalmazza. Válaszoljon a kérdésekre: mely csomagok származnak a biztonsági forrásból, melyik csomag érkezik a Debian helyett egy gyártó forrásából, a openssh-server melyik verziója van jelenleg telepítve, és melyik csomag egy biztonsági ok nélküli, egyszerű stabil frissítés? A program a rögzített megoldókulccsal veti össze a válaszokat. Ha már van saját szervere, futtassa le ugyanezeket a parancsokat, és nézze meg, mit lát.
További olvasnivaló
- A VPS biztonságossá tétele: az első öt perc
- Az első lépések a VPS-ével
- Debian kézikönyv rendszergazdáknak, 6. fejezet (apt): https://debian-handbook.info/browse/stable/apt.html
- A
sources.list(5)kézikönyvoldala (deb822 formátum): https://manpages.debian.org/trixie/apt/sources.list.5.en.html - Debian Security Tracker: https://security-tracker.debian.org/tracker/
