Moodul 4 · 4.1
Paketihaldus apt-iga
Moodul 4: Tarkvara ja uuendused · Lugemisaeg: 10 minutit
Õpieesmärk: Pärast seda õppetundi oskad apt-iga tarkvara paigaldada, uuendada ja eemaldada, näed, kust pakett pärineb, ning tunned ära, millised uuendused on turvauuendused.
Põhimõisted: pakett, paketiallikas (repository), sources.list, .sources-fail (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, turvaallikas, dnf
Milleks paketihaldur?
Windowsis laadid paigaldusprogrammi alla mõnelt veebisaidilt. Linuxi serveris teed seda peaaegu mitte kunagi. Tarkvara tuleb paketina paketiallikast (repository): see on distributsiooni server tuhandete programmidega, mis on kõik ehitatud ja testitud just sinu Debiani või Ubuntu versiooni jaoks. Programmi, mis need paketid alla laadib, paigaldab ja uuendab, nimetatakse paketihalduriks. Debianis ja Ubuntus on selleks apt (mille all töötab dpkg), AlmaLinuxis ja Rocky Linuxis dnf.
Sellel on kolm suurt eelist:
- Üks käsk uuendab kõike. Veebiserver, SSH-server, teegid ja kernel tulevad samast allikast. Sa ei pea iga programmi puhul veebisaidilt vaatama, kas uus versioon on olemas.
- Päritolu on kontrollitud. Iga paketiallikas on võtmega allkirjastatud. apt keeldub pakettidest, mille allkiri ei klapi.
- Sõltuvused lahendatakse ise. Kui nginx vajab mõnda teeki, paigaldab apt selle automaatselt juurde ja koristab hiljem ka ära.
Paketiallikad: kust tarkvara tuleb?
Milliseid allikaid apt kasutab, on kirjas kaustas /etc/apt/. Pikka aega oli selleks üks fail sources.list, kus olid sellised read:
deb http://deb.debian.org/debian bookworm mainUbuntu 24.04 ja uuemad, Debiani pilvetõmmised ning üha rohkem uusi paigaldusi kasutavad uuemat deb822-kuju: eraldi faile laiendiga .sources kaustas /etc/apt/sources.list.d/. Vana sources.list saab ümber teisendada käsuga sudo apt modernize-sources (apt 3, Debian 13). Näiteks Debian 13 puhul:
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.gpgLoe seda nii: suite on versioon (trixie on Debian 13; noble on Ubuntu 24.04), component on allika osa (Debianis main; Ubuntus main, universe, restricted ja multiverse) ning Signed-By ütleb, millise võtmega peab allikas olema allkirjastatud. Viimane on oluline: võti kuulub ühe allika juurde, mitte kõigi allikate juurde korraga. Kui lisad hiljem mõne tootja allika (Docker, Caddy, PostgreSQL), saab see oma võtmefaili ja oma Signed-By-rea (õppetund 9.2).
Allikas, mille nimes on -security, on turvaallikas. Sealt tulevad turvauuendused, tavaliselt samal päeval, kui turvaauk avalikuks saab. Ubuntus on selle suite'i nimi noble-security (või sinu versiooni nimi).
Kui kasutad veel vana sources.list, töötab kõik tavapäraselt. Ära lihtsalt kirjelda sama allikat mõlemal kujul, sest siis kurdab apt topeltridade üle.
update, upgrade ja full-upgrade
Nende kolme mõiste erinevus on algajate esimene lõks.
| Käsk | Mida see teeb |
|---|---|
apt update | Laadib alla nimekirja sellest, millised paketid ja versioonid allikates on. Midagi ei paigalda. |
apt upgrade | Uuendab paigaldatud paketid selle nimekirja uusimale versioonile. Ei eemalda kunagi midagi. Uuendus, mis peaks mõne teise paketi eemaldama, jäetakse vahele. |
apt full-upgrade | Sama, kuid võib vajaduse korral ka pakette eemaldada või uusi paigaldada. Vajalik versiooniuuenduse (release-upgrade) puhul (õppetund 4.3) ja mõnikord uue kerneli puhul. |
Seega alati kõigepealt update, siis 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](Ülaltoodud versiooninumbrid on näide.) Nime järel on kirjas, millisest suite'ist uus versioon tuleb. Kõik, kus on -security, on turvauuendus: need tahad paigaldada nii kiiresti kui võimalik. -updates on muud stabiilsed uuendused, näiteks uued ajavööndiandmed.
Seejärel:
anna@web1:~$ sudo apt upgradeapt näitab, mis muutub, ja küsib kinnitust. Loe see nimekiri läbi. Kui seal on "The following packages will be REMOVED" (järgmised paketid EEMALDATAKSE), toimub midagi erilist ja tahad kõigepealt teada, miks.
Paigaldamine, eemaldamine ja koristamine
anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx # programm eemaldatud, seadistus /etc all jääb alles
anna@web1:~$ sudo apt purge nginx # programm ja seadistus eemaldatud
anna@web1:~$ sudo apt autoremove # koristab ära, mida keegi enam ei vajaErinevus remove ja purge vahel on kasulik: kui tahad midagi ajutiselt eemaldada ja hiljem samade seadetega uuesti paigaldada, kasuta remove. Kui tahad päriselt puhtalt alustada, siis purge.
Otsimine ja lisateave:
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 on käsk, mida kasutad, kui tahad teada, kust pakett pärineb ja millise versiooni apt valib. *** on paigaldatud versiooni juures, Candidate on see, mille uuendus paigaldaks.
Debiani versioonid ja programmi versioon
Sageli kuuldud kaebus: "Debianis on nginxi vana versioon." See on tõsi ja nii on meelega tehtud. Debian ja Ubuntu külmutavad versioonid väljalaske ajal ning lisavad seejärel ainult turvaparandusi ja tõsiste vigade parandusi, ilma uute funktsioonideta. Seepärast võib „vana“ versiooninumbriga paketil olla siiski kõik värsked turvaparandused: need on vanasse versiooni tagasi viidud (backport). Seda tunned ära järelliite järgi, näiteks +deb13u1 või ubuntu0.1.
Ära seega kunagi võrdle ainult versiooninumbrit tootja veebisaidiga, et otsustada, kas oled haavatav. Vaata oma distributsiooni turvateateid: Debian Security Tracker (security-tracker.debian.org) ja Ubuntu Security Notices (ubuntu.com/security/notices) ütlevad iga turvaaugu kohta, kas sinu versioon on parandatud.
Mõned reeglid rahuliku serveri jaoks
- Paigalda ainult seda, mida vajad. Iga pakett on kood, mida tuleb uuendada, ja mõnikord teenus, mis kuulab võrku (õppetund 5.1).
- Pigem distributsioonist kui veebisaidilt. Programmi, mille ise kompileerid või eraldi failina alla laadid,
apt upgradeei uuenda. Siis pead turvateateid ise jälgima. - Lisaallikas ainult tootjalt endalt, oma võtme ja
Signed-By-ga. Ära kunagi lisa võtit „kõige jaoks“ ega allikat tundmatult veebisaidilt (õppetund 4.3). - Loe, mida apt küsib. Uuendamisel võib apt küsida, kas tahad muudetud konfiguratsioonifaili asendada tootja uue versiooniga. Kui sa ei tea, mida oled seal muutnud, vali "keep the local version" (jäta kohalik versioon, see on vaikevalik) ja vaata hiljem erinevust käsuga
diff: uus versioon on kõrval failina.dpkg-dist.
AlmaLinuxis ja Rocky Linuxis
Seal on paketihalduri nimi dnf ja paketid on .rpm. Käsud sarnanevad apt-i omadega: dnf check-update (nimekiri), dnf upgrade (uuendamine, update ja upgrade ühes), dnf install, dnf remove, dnf info. Allikad on kaustas /etc/yum.repos.d/*.repo. Palju lisatarkvara (näiteks fail2ban) tuleb eraldi allikast EPEL, mille lülitad kõigepealt sisse käsuga dnf install epel-release. Ainult turvauuendusi näed käsuga dnf updateinfo list --security.
Praktikas: VPS-i vaade
WebOké juures, nagu ka enamiku teiste teenusepakkujate juures, seadistab VPS-i paigaldus distributsiooni vaikimisi allikad juba õigesti. Tavaliselt ei pea sa seal midagi muutma. Uuenda serverit kohe pärast esimest sisselogimist käskudega apt update ja apt upgrade (õppetund 1.2) ning tee enne suuri muudatusi oma teenusepakkuja paneelis hetktõmmis (snapshot).
Kokkuvõte
- Debianis ja Ubuntus tuleb tarkvara allkirjastatud paketiallikatest; apt laadib alla, paigaldab, uuendab ja koristab.
apt updatelaadib ainult nimekirja;apt upgradeuuendab ilma eemaldamata;apt full-upgradevõib ka eemaldada.- Turvauuendused tulevad suite'ist, mille nimes on
-security;apt list --upgradablejaapt-cache policynäitavad, kust versioon pärineb. - Vanal versiooninumbril, millel on
+deb13u1võiubuntu0.x, võivad olla kõik parandused (backport): vaata oma distributsiooni turvateateid. - Lisaallikas ainult tootjalt endalt, oma võtmega
Signed-By-reas.
Test (quiz)
Ülesanne
Ülesanne Z4.1: Millised uuendused on turvauuendused? Näidisfailis apt-upgradable.txt on Debian 13 serveri käskude apt list --upgradable ja apt-cache policy väljund. Vasta: millised paketid tulevad turvaallikast, milline pakett tuleb Debiani asemel tootja allikast, milline openssh-server versioon on praegu paigaldatud ja milline pakett on tavaline stabiilne uuendus ilma turvapõhjuseta? Programm võrdleb vastuseid kindla võtmega. Kui sul on juba oma server, käivita samad käsud ja vaata, mida näed.
Loe edasi
- Oma VPS-i turvamine: esimesed viis minutit
- Alusta oma VPS-iga
- Debiani süsteemihalduri käsiraamat, 6. peatükk (apt): https://debian-handbook.info/browse/stable/apt.html
- Juhend
sources.list(5)(deb822-kuju): https://manpages.debian.org/trixie/apt/sources.list.5.en.html - Debian Security Tracker: https://security-tracker.debian.org/tracker/
