Modul 4 · 4.1
Upravljanje paketima s apt
Modul 4: Softver i ažuriranja · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete instalirati, ažurirati i uklanjati softver s apt, vidjet ćete odakle paket dolazi i prepoznat ćete koja su ažuriranja sigurnosna ažuriranja.
Ključni pojmovi: paket, izvor paketa (repozitorij), sources.list, datoteka .sources (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, sigurnosni izvor, dnf
Zašto upravitelj paketima?
Na Windowsu instalacijski program preuzimate s web-stranice. Na Linux poslužitelju to gotovo nikada ne radite. Softver dolazi kao paket iz izvora paketa (repozitorija): poslužitelja distribucije s tisućama programa, koji su svi izgrađeni i testirani za Vašu verziju Debiana ili Ubuntua. Program koji te pakete preuzima, instalira i ažurira zove se upravitelj paketima. Na Debianu i Ubuntuu to je apt (ispod kojeg radi dpkg), a na AlmaLinuxu i Rocky Linuxu dnf.
To donosi tri velike prednosti:
- Jedna naredba ažurira sve. Web-poslužitelj, SSH poslužitelj, biblioteke i kernel dolaze iz istog izvora. Ne morate za svaki program posebno provjeravati na web-stranici postoji li nova verzija.
- Podrijetlo je provjereno. Svaki izvor paketa potpisan je ključem. apt odbija pakete čiji potpis nije ispravan.
- Ovisnosti se rješavaju same. Ako nginx treba neku biblioteku, apt je automatski instalira uz njega i kasnije je ponovno ukloni.
Izvori paketa: odakle dolazi softver?
Koje izvore apt koristi, zapisano je u /etc/apt/. Dugo je to bila jedna datoteka sources.list s redcima poput:
deb http://deb.debian.org/debian bookworm mainUbuntu 24.04 i noviji, cloud-slike Debiana i sve više novih instalacija koriste noviji oblik deb822: zasebne datoteke s nastavkom .sources u /etc/apt/sources.list.d/. Staru datoteku sources.list možete pretvoriti naredbom sudo apt modernize-sources (apt 3, Debian 13). Primjer 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Čitajte to ovako: suite je verzija (trixie je Debian 13; noble je Ubuntu 24.04), komponenta je dio izvora (main kod Debiana; main, universe, restricted i multiverse kod Ubuntua), a Signed-By navodi kojim ključem izvor mora biti potpisan. Ovo posljednje je važno: ključ pripada jednom izvoru, a ne svim izvorima odjednom. Dodate li kasnije izvor nekog proizvođača (Docker, Caddy, PostgreSQL), on dobiva vlastitu datoteku s ključem i vlastiti redak Signed-By (lekcija 9.2).
Izvor s -security u nazivu je sigurnosni izvor. Iz njega dolaze sigurnosna ažuriranja, obično istoga dana kada propust postane poznat. Na Ubuntuu se taj suite zove noble-security (ili naziv Vaše verzije).
Ako još koristite staru datoteku sources.list, sve i dalje normalno radi. Samo ne miješajte isti izvor u oba oblika, jer će se apt tada žaliti na dvostruke retke.
update, upgrade i full-upgrade
Razlika između ova tri pojma prva je zamka za početnike.
| Naredba | Što radi |
|---|---|
apt update | Preuzima popis paketa i verzija koji se nalaze u izvorima. Ništa ne instalira. |
apt upgrade | Ažurira instalirane pakete na najnoviju verziju s tog popisa. Nikada ništa ne uklanja. Ažuriranje koje bi moralo ukloniti neki drugi paket preskače se. |
apt full-upgrade | Isto, ali smije i uklanjati pakete ili instalirati nove ako je potrebno. Potrebno pri nadogradnji izdanja (lekcija 4.3) i ponekad pri novom kernelu. |
Dakle uvijek najprije update, zatim 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](Brojevi verzija iznad samo su primjer.) Iza naziva stoji iz kojeg suitea dolazi nova verzija. Sve s -security je sigurnosno ažuriranje: njega želite instalirati što prije. -updates su ostala stabilna ažuriranja, poput novih podataka o vremenskim zonama.
Zatim:
anna@web1:~$ sudo apt upgradeapt prikazuje što će se promijeniti i traži potvrdu. Pročitajte taj popis. Ako piše "The following packages will be REMOVED" (sljedeći paketi bit će uklonjeni), događa se nešto neobično i najprije želite znati zašto.
Instaliranje, uklanjanje i čišćenje
anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx # program uklonjen, konfiguracija u /etc ostaje
anna@web1:~$ sudo apt purge nginx # program i konfiguracija uklonjeni
anna@web1:~$ sudo apt autoremove # uklanjanje onoga što više nikome ne trebaRazlika između remove i purge je korisna: želite li nešto privremeno ukloniti i kasnije ponovno instalirati s istim postavkama, koristite remove. Želite li zaista krenuti ispočetka, koristite purge.
Pretraživanje i dodatne informacije:
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 naredba koju koristite kada želite znati odakle paket dolazi i koju će verziju apt odabrati. *** stoji uz instaliranu verziju, a Candidate je ono što bi nadogradnja instalirala.
Verzije Debiana i verzija programa
Česta pritužba glasi: "U Debianu je stara verzija nginxa." To je točno i namjerno je tako. Debian i Ubuntu zamrzavaju verzije pri objavi izdanja i nakon toga dodaju samo sigurnosne ispravke i ozbiljne popravke, bez novih funkcija. Zato paket sa "starim" brojem verzije ipak može imati sve nedavne sigurnosne ispravke: one su prenesene unatrag (backport) u staru verziju. To prepoznajete po nastavku, poput +deb13u1 ili ubuntu0.1.
Zato nikada ne uspoređujte samo broj verzije s web-stranicom proizvođača kako biste procijenili jeste li ranjivi. Pogledajte sigurnosne obavijesti svoje distribucije: Debian Security Tracker (security-tracker.debian.org) i Ubuntu Security Notices (ubuntu.com/security/notices) za svaki propust navode je li Vaša verzija popravljena.
Nekoliko pravila za miran poslužitelj
- Instalirajte samo ono što Vam treba. Svaki paket je kod koji treba ažurirati, a ponekad i usluga koja osluškuje (lekcija 5.1).
- Radije iz distribucije nego s web-stranice. Program koji sami prevedete ili preuzmete kao zasebnu datoteku
apt upgradene ažurira. Tada sami morate pratiti sigurnosne obavijesti. - Dodatni izvor samo od samog proizvođača, s vlastitim ključem i
Signed-By. Nikada ne dodajte ključ "za sve" i nikada izvor s nepoznate web-stranice (lekcija 4.3). - Pročitajte što apt pita. Pri nadogradnji apt Vas može pitati želite li izmijenjenu konfiguracijsku datoteku zamijeniti novom verzijom proizvođača. Ako ne znate što ste u njoj mijenjali, odaberite "keep the local version" (zadržite lokalnu verziju, to je zadana opcija) i kasnije pomoću
diffpogledajte razliku: nova verzija nalazi se pokraj nje kao.dpkg-dist.
Na AlmaLinuxu i Rocky Linuxu
Ondje se upravitelj paketima zove dnf, a paketi su .rpm. Naredbe su slične onima za apt: dnf check-update (popis), dnf upgrade (ažuriranje, update i upgrade u jednom), dnf install, dnf remove, dnf info. Izvori se nalaze u /etc/yum.repos.d/*.repo. Mnogo dodatnog softvera (poput fail2ban) dolazi iz zasebnog izvora EPEL, koji najprije uključite naredbom dnf install epel-release. Samo sigurnosna ažuriranja možete prikazati naredbom dnf updateinfo list --security.
U praksi: zaslon VPS-a
Kod WebOké, kao i kod većine drugih pružatelja usluga, instalacija Vašeg VPS-a već ispravno postavlja standardne izvore distribucije. Obično tu ništa ne trebate mijenjati. Ažurirajte poslužitelj odmah nakon prve prijave naredbama apt update i apt upgrade (lekcija 1.2), a prije većih promjena napravite snapshot u upravljačkoj ploči svog pružatelja usluga.
Sažetak
- Na Debianu i Ubuntuu softver dolazi iz potpisanih izvora paketa; apt preuzima, instalira, ažurira i čisti.
apt updatesamo preuzima popis;apt upgradeažurira bez uklanjanja;apt full-upgradesmije i uklanjati.- Sigurnosna ažuriranja dolaze iz suitea s
-securityu nazivu;apt list --upgradableiapt-cache policypokazuju odakle verzija dolazi. - Stari broj verzije s
+deb13u1iliubuntu0.xmože imati sve ispravke (backport): pogledajte sigurnosne obavijesti svoje distribucije. - Dodatni izvor samo od samog proizvođača, s vlastitim ključem u
Signed-By.
Kviz
Zadatak
Zadatak Z4.1: Koja su ažuriranja sigurnosna ažuriranja? U primjernoj datoteci apt-upgradable.txt nalazi se izlaz naredbi apt list --upgradable i apt-cache policy s poslužitelja s Debianom 13. Odgovorite: koji paketi dolaze iz sigurnosnog izvora, koji paket dolazi iz izvora proizvođača umjesto iz Debiana, koja je verzija paketa openssh-server trenutačno instalirana i koji je paket obično stabilno ažuriranje bez sigurnosnog razloga? Program uspoređuje Vaše odgovore s fiksnim ključem. Ako već imate vlastiti poslužitelj, pokrenite iste naredbe i pogledajte što vidite.
Dodatno štivo
- Zaštita Vašeg VPS-a: prvih pet minuta
- Započnite sa svojim VPS-om
- Priručnik za administratore Debiana, poglavlje 6 (apt): https://debian-handbook.info/browse/stable/apt.html
- Priručnik
sources.list(5)(oblik deb822): https://manpages.debian.org/trixie/apt/sources.list.5.en.html - Debian Security Tracker: https://security-tracker.debian.org/tracker/
- VPS: od prve prijave do sigurnog poslužitelja 3.3: Ažuriranja i automatska ažuriranja
