Gå til innholdet

Cookie-innstillinger

Velg hvilke typer cookies du tillater. Du kan når som helst endre valget via Cookie-innstillinger nederst på hver side. Personvernerklæring

Nødvendige

Alltid på

Trengs for å logge inn, beholde handlekurven og huske valgene dine. Disse er alltid på.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: økten din og at du forblir innlogget
  • weboke_basket: handlekurven din
  • wkBtwIncl: visning av priser med eller uten mva.
  • wok_cookies: cookievalget ditt, 12 måneder

Måler hvilken annonse som fører til et besøk eller en bestilling, slik at vi ikke betaler for annonser som ikke gir noe.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), opptil 90 dager
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: hvilken partner som henviste deg til oss (partnerprogram), 60 dager

4,6

Land og språk

Hvert land har sin egen nettside, med priser og mva. for det landet.

Vis

Pakkehåndtering med apt

Modul 4: Programvare og oppdateringer · Lesetid: 10 minutter

Læringsmål: Etter denne leksjonen kan du installere, oppdatere og fjerne programvare med apt, du ser hvor en pakke kommer fra, og du kjenner igjen hvilke oppdateringer som er sikkerhetsoppdateringer.

Nøkkelbegreper: pakke, pakkekilde (repository), sources.list, .sources-fil (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, sikkerhetskilde, dnf

Hvorfor en pakkebehandler?

På Windows laster du ned et installasjonsprogram fra et nettsted. På en Linux-server gjør du nesten aldri det. Programvare kommer som en pakke fra en pakkekilde (repository): en server fra distribusjonen med tusenvis av programmer, som alle er bygget og testet for din versjon av Debian eller Ubuntu. Programmet som henter, installerer og oppdaterer disse pakkene, kalles pakkebehandleren. På Debian og Ubuntu er det apt (med dpkg under), på AlmaLinux og Rocky Linux dnf.

Det har tre store fordeler:

  1. Én kommando oppdaterer alt. Webserveren, SSH-serveren, bibliotekene og kjernen kommer fra samme kilde. Du trenger ikke sjekke et nettsted for hvert program for å se om det finnes en ny versjon.
  2. Opprinnelsen er kontrollert. Hver pakkekilde er signert med en nøkkel. apt avviser pakker med en signatur som ikke stemmer.
  3. Avhengigheter ordnes for deg. Trenger nginx et bibliotek, installerer apt det automatisk og rydder det bort igjen senere.

Pakkekildene: hvor kommer det fra?

Hvilke kilder apt bruker, står i /etc/apt/. Lenge var det én fil, sources.list, med linjer som:

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

Ubuntu 24.04 og nyere, Debians cloud-images og stadig flere nye installasjoner bruker den nyere deb822-formen: egne filer med endelsen .sources i /etc/apt/sources.list.d/. En gammel sources.list kan du gjøre om med sudo apt modernize-sources (apt 3, Debian 13). For eksempel på Debian 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

Les det slik: suiten er versjonen (trixie er Debian 13; noble er Ubuntu 24.04), komponenten er en del av kilden (main hos Debian; main, universe, restricted og multiverse hos Ubuntu), og Signed-By sier hvilken nøkkel kilden må være signert med. Det siste er viktig: en nøkkel hører til én kilde, ikke til alle kilder samtidig. Legger du senere til en kilde fra en utvikler (Docker, Caddy, PostgreSQL), får den sin egen nøkkelfil og sin egen Signed-By-linje (leksjon 9.2).

Kilden med -security i navnet er sikkerhetskilden. Derfra kommer sikkerhetsoppdateringene, som regel samme dag som et sikkerhetshull blir kjent. På Ubuntu heter den suiten noble-security (eller navnet på din versjon).

Bruker du fortsatt den gamle sources.list, fungerer alt helt fint. Bare ikke bland den samme kilden i begge former, for da klager apt over doble linjer.

update, upgrade og full-upgrade

Forskjellen mellom disse tre er den første fellen for nybegynnere.

KommandoHva den gjør
apt updateHenter listen over hvilke pakker og versjoner som finnes i kildene. Installerer ingenting.
apt upgradeOppdaterer installerte pakker til den nyeste versjonen fra den listen. Fjerner aldri noe. En oppdatering som ville kreve at en annen pakke fjernes, blir hoppet over.
apt full-upgradeDet samme, men kan også fjerne pakker eller installere nye når det trengs. Nødvendig ved en release-oppgradering (leksjon 4.3) og noen ganger ved en ny kjerne.

Så alltid først update, deretter 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]

(Versjonsnumrene over er et eksempel.) Etter navnet står det hvilken suite den nye versjonen kommer fra. Alt med -security er en sikkerhetsoppdatering: den vil du ha så fort som mulig. -updates er andre stabile oppdateringer, som nye tidssonedata.

Deretter:

anna@web1:~$ sudo apt upgrade

apt viser hva som endres og ber om bekreftelse. Les den listen. Står det "The following packages will be REMOVED" (disse pakkene blir fjernet), er det noe spesielt på gang, og da vil du først vite hvorfor.

Installere, fjerne og rydde opp

anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx       # programmet fjernet, konfigurasjonen i /etc blir værende
anna@web1:~$ sudo apt purge nginx        # programmet og konfigurasjonen fjernet
anna@web1:~$ sudo apt autoremove         # rydd opp i det ingen trenger lenger

Forskjellen mellom remove og purge er nyttig: vil du fjerne noe midlertidig og installere det igjen senere med de samme innstillingene, bruker du remove. Vil du virkelig begynne på nytt, purge.

Søke og få mer informasjon:

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 er kommandoen du bruker når du vil vite hvor en pakke kommer fra og hvilken versjon apt vil velge. *** står ved den installerte versjonen, Candidate er det en oppgradering ville installere.

Debian-versjoner og versjonen av et program

En vanlig klage: "Debian har en gammel versjon av nginx." Det stemmer, og det er med vilje. Debian og Ubuntu fryser versjonene når en release kommer ut, og legger deretter bare til sikkerhetsrettelser og alvorlige reparasjoner, uten nye funksjoner. Derfor kan en pakke med et "gammelt" versjonsnummer likevel ha alle nyere sikkerhetsrettelser: de er tilbakeført (backport) til den gamle versjonen. Du kjenner det igjen på endelsen, som +deb13u1 eller ubuntu0.1.

Sammenlign derfor aldri bare versjonsnummeret med utviklerens nettsted for å vurdere om du er sårbar. Se på sikkerhetsvarslene fra distribusjonen din: Debian Security Tracker (security-tracker.debian.org) og Ubuntu Security Notices (ubuntu.com/security/notices) sier for hvert sikkerhetshull om din versjon er rettet.

Noen regler for en rolig server

  • Installer bare det du trenger. Hver pakke er kode som må oppdateres, og noen ganger en tjeneste som lytter (leksjon 5.1).
  • Heller fra distribusjonen enn fra et nettsted. Et program du kompilerer selv eller laster ned som en løs fil, blir ikke oppdatert av apt upgrade. Da må du selv følge med på sikkerhetsvarslene.
  • En ekstra kilde bare fra utvikleren selv, med egen nøkkel og Signed-By. Legg aldri til en nøkkel "for alt", og aldri en kilde fra et ukjent nettsted (leksjon 4.3).
  • Les hva apt spør om. Ved en oppgradering kan apt spørre om du vil erstatte en endret konfigurasjonsfil med utviklerens nye versjon. Vet du ikke hva du har endret, velger du "keep the local version" (behold den lokale versjonen, standardvalget) og ser senere på forskjellen med diff: den nye versjonen ligger ved siden av som .dpkg-dist.

På AlmaLinux og Rocky Linux

Der heter pakkebehandleren dnf, og pakkene heter .rpm. Kommandoene ligner på apt: dnf check-update (listen), dnf upgrade (oppdatere, update og upgrade i ett), dnf install, dnf remove, dnf info. Kildene ligger i /etc/yum.repos.d/*.repo. Mye ekstra programvare (som fail2ban) kommer fra den separate kilden EPEL, som du først slår på med dnf install epel-release. Bare sikkerhetsoppdateringer viser du med dnf updateinfo list --security.

I praksis: VPS-skjermen

Hos WebOké, og hos de fleste andre leverandører, setter installasjonen av VPS-en din opp distribusjonens standardkilder riktig. Du trenger som regel ikke endre noe der. Oppdater serveren rett etter første innlogging med apt update og apt upgrade (leksjon 1.2), og ta et snapshot i leverandørens panel før store endringer.

Sammendrag

  • På Debian og Ubuntu kommer programvare fra signerte pakkekilder; apt henter, installerer, oppdaterer og rydder opp.
  • apt update henter bare listen; apt upgrade oppdaterer uten å fjerne; apt full-upgrade kan også fjerne.
  • Sikkerhetsoppdateringer kommer fra suiten med -security i navnet; apt list --upgradable og apt-cache policy viser hvor en versjon kommer fra.
  • Et gammelt versjonsnummer med +deb13u1 eller ubuntu0.x kan ha alle rettelser (backport): se på sikkerhetsvarslene fra distribusjonen din.
  • En ekstra kilde bare fra utvikleren selv, med egen nøkkel i Signed-By.

Quiz

1. Du skriver sudo apt upgrade på en server der du ikke har gjort noe på en uke, og apt sier at alt er oppdatert. Likevel vet du at det kom en OpenSSH-oppdatering i går. Hva er den mest sannsynlige forklaringen?



2. Hva er forskjellen mellom apt remove og apt purge?



3. I apt list --upgradable står det openssh-server/noble-security .... Hva sier delen noble-security?



4. På nettstedet til et program står versjon 2.8, mens Debian leverer 2.6 med +deb13u2. En kollega sier: "Debian er altså sårbar for alle sikkerhetshull som er rettet i 2.7 og 2.8." Hva stemmer?



5. Hvorfor hører det til en egen nøkkel med Signed-By til en ekstra pakkekilde?



Oppgave

Oppgave Z4.1: Hvilke oppdateringer er sikkerhetsoppdateringer? Eksempelfilen apt-upgradable.txt inneholder utdataene fra apt list --upgradable og apt-cache policy på en Debian 13-server. Svar på: hvilke pakker kommer fra sikkerhetskilden, hvilken pakke kommer fra en kilde fra en utvikler i stedet for Debian, hvilken versjon av openssh-server er installert nå, og hvilken pakke er en vanlig stabil oppdatering uten sikkerhetsgrunn? Programmet sammenligner med fasiten. Har du allerede din egen server, kjører du de samme kommandoene og ser hva du får.

Oppgave Z4.1: Hvilke oppdateringer er sikkerhetsoppdateringer?

Fil til denne oppgaven: apt-upgradable.txt





Det du fyller inn, og det vi finner, lagrer vi ikke. Nettleseren din husker svarene dine og om du har bestått oppgaven. Er du logget inn, lagrer vi kun at du har (nesten) bestått oppgaven i Mine kurs; der kan du også slette det.

Les mer

Et øyeblikk …

Sett opp domenene dine

Ordne for hvert domene navnetjenerne, koblingen til hostingen din og hvem som blir innehaver.

Laster inn domenene dine…