Hoppa till innehållet

Cookieinställningar

Välj vilka typer av cookies du tillåter. Du kan alltid ändra ditt val via Cookieinställningar längst ned på varje sida. Integritetspolicy

Nödvändiga

Alltid på

Behövs för att logga in, spara din varukorg och komma ihåg dina val. De är alltid på.

Vilka cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session och att du förblir inloggad
  • weboke_basket: din varukorg
  • wkBtwIncl: visa priser med eller utan moms
  • wok_cookies: ditt cookieval, 12 månader

Mäter vilken annons som leder till ett besök eller en beställning, så att vi inte betalar för annonser som inte ger något.

Vilka cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), upp till 90 dagar
  • OpenAI Ads, annonser i ChatGPT
  • wok_aff: via vilken partner du kom till oss (affiliateprogram), 60 dagar

4,6

Land och språk

Varje land har en egen webbplats med landets priser och moms.

Visa

Pakethantering med apt

Modul 4: Programvara och uppdateringar · Lästid: 10 minuter

Lärandemål: Efter den här lektionen kan du installera, uppdatera och ta bort programvara med apt, du ser varifrån ett paket kommer och du känner igen vilka uppdateringar som är säkerhetsuppdateringar.

Nyckelbegrepp: paket, paketkälla (repository), sources.list, .sources-fil (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, säkerhetskälla, dnf

Varför en pakethanterare?

På Windows laddar du ner ett installationsprogram från en webbplats. På en Linux-server gör du nästan aldrig så. Programvara kommer som ett paket från en paketkälla (repository): en server hos distributionen med tusentals program, som alla är byggda och testade för din version av Debian eller Ubuntu. Programmet som hämtar, installerar och uppdaterar paketen kallas pakethanterare. På Debian och Ubuntu är det apt (med dpkg under ytan), på AlmaLinux och Rocky Linux är det dnf.

Det ger tre stora fördelar:

  1. Ett enda kommando uppdaterar allt. Webbservern, SSH-servern, biblioteken och kärnan kommer från samma källa. Du behöver inte kolla på en webbplats för varje program om det finns en ny version.
  2. Ursprunget är kontrollerat. Varje paketkälla är signerad med en nyckel. apt vägrar paket vars signatur inte stämmer.
  3. Beroenden sköts åt dig. Behöver nginx ett bibliotek installerar apt det automatiskt och städar bort det senare.

Paketkällorna: varifrån kommer det?

Vilka källor apt använder står i /etc/apt/. Länge var det en enda fil, sources.list, med rader som:

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

Ubuntu 24.04 och senare, Debians molnavbilder och allt fler nya installationer använder det nyare deb822-formatet: separata filer med filändelsen .sources i /etc/apt/sources.list.d/. En gammal sources.list kan du konvertera med sudo apt modernize-sources (apt 3, Debian 13). Till exempel 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

Läs det så här: suite är versionen (trixie är Debian 13, noble är Ubuntu 24.04), component är en del av källan (main på Debian, main, universe, restricted och multiverse på Ubuntu), och Signed-By anger vilken nyckel källan måste vara signerad med. Det sista är viktigt: en nyckel hör till en källa, inte till alla källor på en gång. Lägger du senare till en källa från en tillverkare (Docker, Caddy, PostgreSQL) får den en egen nyckelfil och en egen Signed-By-rad (lektion 9.2).

Källan med -security i namnet är säkerhetskällan. Därifrån kommer säkerhetsuppdateringarna, oftast samma dag som en sårbarhet blir känd. På Ubuntu heter den suiten noble-security (eller namnet på din version).

Använder du fortfarande den gamla sources.list fungerar allt som vanligt. Blanda bara inte samma källa i båda formaten, för då klagar apt på dubbla rader.

update, upgrade och full-upgrade

Skillnaden mellan de här tre är den första fällan för nybörjare.

KommandoVad det gör
apt updateHämtar listan över vilka paket och versioner som finns i källorna. Installerar ingenting.
apt upgradeUppdaterar installerade paket till den senaste versionen i listan. Tar aldrig bort något. En uppdatering som skulle kräva att ett annat paket tas bort hoppas över.
apt full-upgradeSamma sak, men får också ta bort paket eller installera nya om det behövs. Krävs vid en release-uppgradering (lektion 4.3) och ibland vid en ny kärna.

Alltså alltid först update, sedan 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]

(Versionsnumren ovan är ett exempel.) Efter namnet står vilken suite den nya versionen kommer från. Allt med -security är en säkerhetsuppdatering: den vill du installera så snart som möjligt. -updates är andra stabila uppdateringar, som ny tidszonsdata.

Därefter:

anna@web1:~$ sudo apt upgrade

apt visar vad som ändras och ber om bekräftelse. Läs listan. Står det "The following packages will be REMOVED" (följande paket kommer att tas bort) händer något ovanligt, och då vill du först veta varför.

Installera, ta bort och städa

anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx       # programmet borttaget, konfigurationen i /etc finns kvar
anna@web1:~$ sudo apt purge nginx        # programmet och konfigurationen borttagna
anna@web1:~$ sudo apt autoremove         # rensa bort det som ingen behöver längre

Skillnaden mellan remove och purge är praktisk: vill du ta bort något tillfälligt och senare installera det igen med samma inställningar, använd remove. Vill du verkligen börja om från noll, använd purge.

Söka och få mer information:

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 är kommandot du använder när du vill veta varifrån ett paket kommer och vilken version apt kommer att välja. *** står vid den installerade versionen, Candidate är det som en uppgradering skulle installera.

Debian-versioner och versionen av ett program

Ett vanligt klagomål: "Debian har en gammal version av nginx." Det stämmer, och det är med flit. Debian och Ubuntu fryser versionerna när en release ges ut och lägger sedan bara till säkerhetsrättningar och allvarliga felrättningar, utan nya funktioner. Därför kan ett paket med ett "gammalt" versionsnummer ändå ha alla nya säkerhetsrättningar: de har förts tillbaka (backport) till den gamla versionen. Du känner igen det på suffixet, till exempel +deb13u1 eller ubuntu0.1.

Jämför alltså aldrig bara versionsnumret med tillverkarens webbplats för att avgöra om du är sårbar. Titta på din distributions säkerhetsmeddelanden: Debian Security Tracker (security-tracker.debian.org) och Ubuntu Security Notices (ubuntu.com/security/notices) visar för varje sårbarhet om din version är rättad.

Några regler för en lugn server

  • Installera bara det du behöver. Varje paket är kod som måste uppdateras och ibland en tjänst som lyssnar (lektion 5.1).
  • Hellre från distributionen än från en webbplats. Ett program som du kompilerar själv eller laddar ner som en lös fil uppdateras inte av apt upgrade. Då måste du själv bevaka säkerhetsmeddelandena.
  • En extra källa bara från tillverkaren själv, med en egen nyckel och Signed-By. Lägg aldrig till en nyckel "för allt" och aldrig en källa från en okänd webbplats (lektion 4.3).
  • Läs vad apt frågar. Vid en uppgradering kan apt fråga om du vill ersätta en ändrad konfigurationsfil med tillverkarens nya version. Vet du inte vad du har ändrat, välj "keep the local version" (behåll den lokala versionen, standardvalet) och titta senare på skillnaden med diff: den nya versionen ligger bredvid som .dpkg-dist.

På AlmaLinux och Rocky Linux

Där heter pakethanteraren dnf och paketen är .rpm. Kommandona liknar apt: dnf check-update (listan), dnf upgrade (uppdatera, update och upgrade i ett), dnf install, dnf remove, dnf info. Källorna finns i /etc/yum.repos.d/*.repo. Mycket extra programvara (som fail2ban) kommer från den separata källan EPEL, som du först slår på med dnf install epel-release. Bara säkerhetsuppdateringar visar du med dnf updateinfo list --security.

I praktiken: VPS-panelen

Hos WebOké, och hos de flesta andra leverantörer, ställer installationen av din VPS redan in distributionens standardkällor korrekt. Oftast behöver du inte ändra något där. Uppdatera servern direkt efter första inloggningen med apt update och apt upgrade (lektion 1.2), och ta en ögonblicksbild (snapshot) i leverantörens panel innan du gör större ändringar.

Sammanfattning

  • På Debian och Ubuntu kommer programvara från signerade paketkällor; apt hämtar, installerar, uppdaterar och städar.
  • apt update hämtar bara listan; apt upgrade uppdaterar utan att ta bort något; apt full-upgrade får också ta bort.
  • Säkerhetsuppdateringar kommer från suiten med -security i namnet; apt list --upgradable och apt-cache policy visar varifrån en version kommer.
  • Ett gammalt versionsnummer med +deb13u1 eller ubuntu0.x kan ha alla rättningar (backport): titta på din distributions säkerhetsmeddelanden.
  • En extra källa bara från tillverkaren själv, med en egen nyckel i Signed-By.

Quiz

1. Du skriver sudo apt upgrade på en server som du inte har rört på en vecka, och apt säger att allt är uppdaterat. Ändå vet du att en OpenSSH-uppdatering kom ut i går. Vad är den troligaste förklaringen?



2. Vad är skillnaden mellan apt remove och apt purge?



3. I apt list --upgradable står openssh-server/noble-security .... Vad säger delen noble-security?



4. På ett programs webbplats står version 2.8, medan Debian levererar 2.6 med +deb13u2. En kollega säger: "Debian är alltså sårbart för alla hål som rättats i 2.7 och 2.8." Vad stämmer?



5. Varför hör en egen nyckel med Signed-By till en extra paketkälla?



Uppgift

Uppgift Z4.1: Vilka uppdateringar är säkerhetsuppdateringar? Exempelfilen apt-upgradable.txt innehåller utdata från apt list --upgradable och apt-cache policy på en Debian 13-server. Svara på: vilka paket kommer från säkerhetskällan, vilket paket kommer från en tillverkares källa i stället för från Debian, vilken version av openssh-server är installerad just nu, och vilket paket är en vanlig stabil uppdatering utan säkerhetsskäl? Programmet jämför med en fast facit. Har du redan en egen server, kör samma kommandon och se vad du får.

Uppgift Z4.1: Vilka uppdateringar är säkerhetsuppdateringar?

Fil till den här uppgiften: apt-upgradable.txt





Det du fyller i och det vi hittar sparar vi inte. Din webbläsare kommer ihåg dina svar och om du klarade uppgiften. Är du inloggad sparar vi bara att du klarade uppgiften (nästan) i Mina kurser; där kan du också ta bort det.

Läs mer

Ett ögonblick…

Ställ in dina domäner

Ställ in namnservrar, koppling till ditt webbhotell och vem som blir innehavare för varje domän.

Hämtar dina domäner…