Patching

Unattended upgrades opgraderer ikke: tjek det her i rækkefølge

apt list --upgradable viser en hel skærm fuld af pakker, unattended-upgrades har været installeret i månedsvis, og der sker tilsyneladende ikke meget. Før du går ud fra, at det er i stykker, så tjek, hvad det er sat op til at gøre. Standardindstillingerne dækker mindre, end navnet antyder.

Det korte svar

Gå listen igennem oppefra. Bekræft, at apt-daily-upgrade.timer går i gang, og at /etc/apt/apt.conf.d/20auto-upgrades sætter begge periodiske værdier til "1". Læs derefter de tilladte kilder. Ubuntu installerer kun sikkerhedsopdateringer, Debian tager punktudgivelser med, og ingen af dem rører -updates eller pakkearkiver fra tredjepart, medmindre du tilføjer dem. Kør sudo unattended-upgrade --dry-run --debug, og læs /var/log/unattended-upgrades/. Pakker på hold, poster på blacklisten, spørgsmål om konfigurationsfiler, nye afhængigheder og dpkg-låse forklarer det meste af resten.

Standardindstillingerne på Debian og Ubuntu

Start med standardindstillingerne. Vi har tjekket dem mod Debian 13 med unattended-upgrades 2.12 og apt 3.0.3 og mod Ubuntu 24.04 LTS med unattended-upgrades 2.9.1+nmu4ubuntu1 og apt 2.8.3.

Debian 13Ubuntu 24.04
Installeret fra startAfhænger af, hvordan systemet blev installeret; Debian-wikien advarer om, at den kan mangleJa, med sikkerhedsopdateringer slået til
20auto-upgradesPakken skriver den med begge værdier sat til "1" ved installationen, fordi standardsvaret på dens opsætningsspørgsmål er jaFindes, begge værdier "1"
Installerer fratrixie-security plus selve trixie-udgivelsen, som kun ændrer sig ved punktudgivelsernoble-security, ESM-sikkerhedsopdateringer hvor de findes, og selve udgivelsen (release-pocket) til nye afhængigheder
Ignorerer som standardtrixie-updates, backports, alle pakkearkiver fra tredjepartnoble-updates, backports, proposed, PPA'er, alle pakkearkiver fra tredjepart
TidsplanOpgraderingstimeren kl. 06:00 servertid plus op til 60 minutters tilfældig forsinkelseSamme
Automatisk genstartFraFra

Tjeklisten

  1. Det er slået tilKør apt-config dump | grep Periodic. Du skal se Update-Package-Lists "1" og Unattended-Upgrade "1". Begge er 0 som standard i apts daglige script, så mangler 20auto-upgrades, kører intet, og APT::Periodic::Enable "0" i en hvilken som helst fil slår det hele fra. sudo dpkg-reconfigure -plow unattended-upgrades skriver filen, hvis den aldrig har eksisteret, men ikke hvis nogen har slettet den. I så fald skriver ucf Not replacing deleted config file og lader den mangle. Kør det som sudo UCF_FORCE_CONFFMISS=1 dpkg-reconfigure -plow unattended-upgrades, eller kopiér /usr/share/unattended-upgrades/20auto-upgrades tilbage på plads.
  2. Systemd-timerne går i gangsystemctl list-timers apt-daily.timer apt-daily-upgrade.timer viser sidste og næste kørsel, og journalctl -u apt-daily-upgrade.service viser, hvad der skete. En deaktiveret eller maskeret timer betyder ingen kørsler, uanset hvad konfigurationen siger.
  3. Selve apt er i ordenFør alt andet kører apts daglige script apt-get check, som tager dpkg-låsen, og stopper uden en lyd, hvis det fejler. Det gælder også den tilstand, en afbrudt installation efterlader. Apt tager ikke sin lås, før nogen kører dpkg --configure -a, så ét strømsvigt midt i en opgradering kan stoppe alle senere kørsler uden nogen advarsel. Kør selv sudo apt-get check. Brokker den sig, gør sudo dpkg --configure -a den afbrudte installation færdig, og sudo apt-get -f install reparerer ødelagte afhængigheder.
  4. Pakken kommer fra en tilladt kildeHver kørsel i loggen starter med Starting unattended upgrades script, efterfulgt af Allowed origins are:. Sammenlign den liste med apt-cache policy <package>, som viser, hvilket arkiv den nye version ligger i. På Ubuntu er en version i noble-updates ikke tilladt som standard, og det er pakker fra Docker, et PPA eller andre pakkearkiver, du selv har tilføjet, heller ikke.
  5. Kør den manueltsudo unattended-upgrade --dry-run --debug simulerer en kørsel og skriver sine overvejelser til /var/log/unattended-upgrades/unattended-upgrades.log. Kun root og gruppen adm kan læse mappen. En prøvekørsel kan ikke vise tilbageholdte pakker og siger det selv. Til det skal du læse loggen fra en rigtig kørsel.
  6. Intet er sat på holdapt-mark showhold viser pakker på hold. unattended-upgrades lader dem være, og en rigtig kørsel, ikke en prøvekørsel, logger Package <name> is marked to be held back.
  7. Blacklisten er ikke for bredPoster i Package-Blacklist er regulære udtryk i Python, der matches fra starten af navnet, så "linux-" blokerer alle kernepakker. En blacklistet pakke blokerer også opgraderinger af pakker, der afhænger af den. En rigtig kørsel logger Package <name> is blacklisted. for selve pakken, men kun is kept back because a related package is kept back for de pakker, der afhænger af den.
  8. Intet spørgsmål om en konfigurationsfil venterHvis en opgradering ville spørge, om du vil beholde din redigerede konfigurationsfil, springer unattended-upgrades pakken over, og loggen siger has conffile prompt and needs to be upgraded manually. Opgradér den manuelt, og svar på spørgsmålet.
  9. Den kræver ikke, at noget bliver fjernetunattended-upgrades installerer kun nye afhængigheder fra tilladte kilder og fjerner aldrig en installeret pakke for at gennemføre en opgradering. apt upgrade springer også en opgradering over, der kræver, at noget bliver fjernet. Apt i Ubuntu 24.04 viser den under "kept back", og apt 3.0 i Debian 13 viser den under "Not upgrading". I modsætning til unattended-upgrades installerer apt upgrade nye afhængigheder fra ethvert konfigureret pakkearkiv. Læs, hvad sudo apt full-upgrade foreslår at fjerne, før du accepterer det.
  10. Trinvis udrulning påvirker kun aptUbuntu udgiver nogle opdateringer i etaper (phased updates). APT afgør det pr. maskine ud fra pakkens navn, versionen og /etc/machine-id, og apt upgrade holder den nye version tilbage, indtil det bliver din tur. apt policy <package> viser den fx som (phased 20%). Ubuntu udruller aldrig sikkerhedsopdateringer trinvist. APT har gjort det siden Ubuntu 21.04 og apt 2.1.16. unattended-upgrades tager ikke hensyn til trinvis udrulning, og i vores test installerede den en opdatering, der var udrullet til 0 %, så snart dens kilde var tilladt. Trinvis udrulning kan altså forklare, hvorfor apt upgrade holder noget tilbage, men ikke hvorfor unattended-upgrades gør. Tillader du -updates, når trinvist udrullede opdateringer maskinen med det samme.
  11. Intet andet holder låsenEn kørsel, der støder ind i dig eller i et konfigurationsværktøj, der bruger apt, giver op til næste dag. Møder unattended-upgrades selv låsen, logger den Lock could not be acquired (another package manager running?). Det omvendte sker ofte efter opstart. Timerne er persistente, så en kørsel, der blev misset, mens maskinen var slukket, starter, når den kommer op igen, med den samme tilfældige forsinkelse. apt venter, til den er færdig. apt-get stopper med det samme med Could not get lock.

Lad den installere mere end sikkerhedsopdateringer

README-filen til unattended-upgrades anbefaler at lægge ændringer i en separat fil, der sorteres efter 50unattended-upgrades, så pakkeopdateringer af den medfølgende fil ikke kolliderer med dine rettelser. Lister i en senere fil bliver lagt til standardlisten i stedet for at erstatte den:

// /etc/apt/apt.conf.d/52unattended-upgrades-local
// Ubuntu: also install bug-fix updates, not only security
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-updates";
};

// Debian uses Origins-Pattern instead:
// Unattended-Upgrade::Origins-Pattern {
//         "origin=Debian,codename=${distro_codename}-updates";
// };

For et pakkearkiv fra tredjepart finder du dets Origin i arkivets InRelease-fil under /var/lib/apt/lists/ eller i outputtet fra apt-cache policy og tilføjer det på samme måde. Overvej dog, om du vil have leverandørpakker til at opdatere sig selv klokken seks om morgenen.

Kørselsplan og varighed

apt-daily.timer, som opdaterer pakkelisterne, går i gang kl. 06:00 og 18:00 med op til 12 timers tilfældig forsinkelse. apt-daily-upgrade.timer installerer kl. 06:00 med op til 60 minutters forsinkelse. APT::Periodic-værdierne er intervaller i dage, der tjekkes mod stempelfiler efter kalenderdato, så hvert trin stadig sker én gang om dagen, og en værdi under én dag får det ikke til at køre oftere. Vil du køre to gange om dagen, så sæt værdien til always, og tilføj en ekstra OnCalendar-linje. Sådan flytter du kørslen:

sudo systemctl edit apt-daily-upgrade.timer

# in the editor that opens:
[Timer]
OnCalendar=
OnCalendar=*-*-* 03:00
RandomizedDelaySec=30m

Der er ingen typisk kørselstid at nævne, fordi det afhænger af, hvad der venter. Som standard kører opgraderingen i mindst mulige trin, som den medfølgende konfiguration beskriver som lidt langsommere, men sikker at afbryde ved nedlukning. Mål det selv. Loggen har et tidsstempel på Starting unattended upgrades script og på den sidste linje i hver kørsel.

Genstart og kerneopdateringer

unattended-upgrades installerer en ny kernepakke som enhver anden, og den kørende kerne forbliver præcis, som den var, indtil maskinen genstarter, eller rettelsen bliver lagt på med live patching. unattended-upgrades afgør ikke, om en genstart er nødvendig. Den kigger efter /var/run/reboot-required og genstarter, når den fil findes, hvis automatisk genstart er slået til:

// /etc/apt/apt.conf.d/52unattended-upgrades-local
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:30";

unattended-upgrades sender tidspunktet videre til shutdown, som det står, og shutdown bruger serverens tidszone. Standarden er now, som betyder lige efter kørslen, og den genstarter med brugere logget ind, medmindre du sætter Automatic-Reboot-WithUsers til false. På både Debian og Ubuntu installerer unattended-upgrades selv en kernehook, /etc/kernel/postinst.d/unattended-upgrades, som skriver flagfilen, hver gang en kernepakke bliver installeret. Ubuntus update-notifier-common tilføjer endnu en. På Ubuntu undlader begge at gøre det for kerner, mens Canonical Livepatch er slået til. Flagfilen dækker kun kerner. Kørende tjenester beholder den gamle kopi af et bibliotek i hukommelsen, indtil de bliver genstartet. Fra og med Ubuntu 24.04 genstarter needrestart som standard de berørte tjenester automatisk, når apt kører det. Debians version spørger som standard og nøjes med at vise dem, når den kører uden terminal, som den gør under en unattended upgrade.

"Unattended-upgrade in progress during shutdown"

Pakken leverer en lille tjeneste, unattended-upgrades.service, som ikke gør noget, før maskinen lukker ned. Kører der en opgradering i det øjeblik, sender den opgraderingen et stopsignal, skriver denne besked til unattended-upgrades-shutdown.log og til nedlukningens splashskærm, hvor der er en, og holder nedlukningen tilbage, mens det aktuelle trin bliver færdigt, i op til 25 minutter som standard. Lad den blive færdig. Slår du strømmen fra midt i en installation, kan dpkg blive efterladt halvt konfigureret, og derefter installerer apt ingenting, heller ikke via det daglige job, indtil nogen kører sudo dpkg --configure -a, som trin tre ovenfor beskriver.

InstallOnShutdown gør det modsatte og installerer med vilje opdateringer under nedlukning i stedet for i baggrunden. Den er slået fra som standard, gør hver nedlukning langsommere, og den medfølgende konfiguration anbefaler at hæve InhibitDelayMaxSec i logind, hvis du slår den til. På en server, der sjældent lukker ned, er det det forkerte værktøj.

Automatiske sikkerhedsopdateringer er trin fem i guiden til at sikre en ny VPS. Med tjeklisten ovenfor finder du ud af, om trin fem faktisk sker.

Faldgruber

Sådan blev det testet. Den 23. september 2026 gik vi hvert trin ovenfor igennem i Docker-containere med systemd, én med Debian 13 fra debian:trixie med unattended-upgrades 2.12 og apt 3.0.3 og én med Ubuntu 24.04.5 LTS med unattended-upgrades 2.9.1+nmu4ubuntu1 og apt 2.8.3. Et lokalt pakkearkiv med dummy-pakker gav os en pakke på hold, træf på blacklisten, et spørgsmål om en konfigurationsfil, nye afhængigheder fra tilladte og ikke-tilladte kilder, en opgradering, der krævede, at noget blev fjernet, og opdateringer udrullet til 0 % og 50 %. Vi dræbte dpkg midt i en installation, holdt dpkg-låsen, udløste begge timere, stoppede unattended-upgrades.service under en langsom installation for at simulere nedlukning, installerede en rigtig Debian-kernepakke og erstattede shutdown med en stub, der kun logger, for at teste automatisk genstart. Ikke testet: en rigtig genstart eller et rigtigt strømsvigt, rigtige trinvise udrulninger fra Ubuntus arkiv, ESM-kilder, mailrapporter, eller hvad en frisk installation af Ubuntu Server leveres med, da Docker-imagene ikke indeholder unattended-upgrades.

Kilder

  1. unattended-upgrades README, unattended-upgrades-projektet, GitHub
  2. unattended-upgrade(8) manual page, Debian 13, unattended-upgrades 2.12
  3. unattended-upgrades 2.12 source: 50unattended-upgrades.Debian, unattended-upgrade, unattended-upgrade-shutdown, debian/templates, Debian
  4. 50unattended-upgrades.Ubuntu, unattended-upgrades 2.9.1+nmu4ubuntu1, Ubuntu
  5. apt 3.0.3 source: apt.systemd.daily, apt-daily.timer, apt-daily-upgrade.timer, Debian
  6. UnattendedUpgrades (PeriodicUpdates), Debian Wiki, sidst ændret 10. juli 2026
  7. stable-updates, Debian Wiki
  8. Automatic updates, Ubuntu Server-dokumentationen
  9. About apt upgrade and phased updates, Ubuntu Server-dokumentationen, opdateret 26. juni 2026
  10. apt_preferences(5): Phased Updates, Debian 13
  11. apt(8) og apt-mark(8), Debian 13
  12. systemd.timer(5), Debian 13

Spørgsmål

Hvor ofte kører unattended upgrades?

Én gang om dagen som standard. På Debian og Ubuntu går apt-daily-upgrade.timer i gang kl. 06:00 servertid med op til 60 minutters tilfældig forsinkelse, og apt-daily.timer, som opdaterer pakkelisterne, går i gang kl. 06:00 og 18:00 med op til 12 timers forsinkelse. APT::Periodic-værdierne i 20auto-upgrades er intervaller i dage, så med standardværdien 1 sker hvert trin stadig én gang om dagen. Fordi de to timere er persistente, starter en kørsel, der blev misset, mens maskinen var slukket, kort efter næste opstart.

Hvordan slår jeg unattended upgrades til?

Installer pakken unattended-upgrades, kør derefter sudo dpkg-reconfigure -plow unattended-upgrades, og svar ja. Det skriver /etc/apt/apt.conf.d/20auto-upgrades med APT::Periodic::Update-Package-Lists og APT::Periodic::Unattended-Upgrade begge sat til "1". Er filen blevet slettet efter installationen, genskaber dpkg-reconfigure den ikke, medmindre du kører det som sudo UCF_FORCE_CONFFMISS=1 dpkg-reconfigure -plow unattended-upgrades. Tjek resultatet med apt-config dump, og test med sudo unattended-upgrade --dry-run --debug. På Ubuntu Server er begge trin allerede gjort efter installationen.

Hvorfor bliver pakker holdt tilbage og ikke opgraderet automatisk?

unattended-upgrades springer en pakke over, når den nye version ligger i et pakkearkiv, der ikke er en tilladt kilde, fx Ubuntus -updates eller et pakkearkiv fra tredjepart; når den er sat på hold med apt-mark eller matcher Package-Blacklist; når opgraderingen ville spørge om en ændret konfigurationsfil; eller når den kræver, at en pakke bliver fjernet, eller kræver en afhængighed fra en kilde, der ikke er tilladt. På Ubuntu holder trinvis udrulning (phased updates) opdateringer, der ikke er sikkerhedsopdateringer, tilbage fra apt upgrade i et stykke tid, men i vores tests tog unattended-upgrades selv ikke hensyn til den trinvise udrulning.

Hvor lang tid tager en unattended upgrade?

Der er ingen fast varighed. Det afhænger af, hvor mange pakker der venter, og hvad deres installationsscripts gør. Som standard installerer den i mindst mulige trin, hvilket er lidt langsommere, men kan afbrydes sikkert. Vil du se dine egne tider, så sammenlign start- og slutlinjerne i /var/log/unattended-upgrades/unattended-upgrades.log, eller læs journalctl -u apt-daily-upgrade.service.

Hvad betyder "unattended-upgrade in progress during shutdown"?

Du lukkede ned, mens en opgradering kørte. Nedlukningshjælperen i unattended-upgrades beder den kørende opgradering om at stoppe efter det aktuelle trin og udskyder nedlukningen, mens den gør det færdigt, i op til 25 minutter som standard. Lad den blive færdig i stedet for at slå strømmen fra. Bliver dpkg alligevel afbrudt, så kør sudo dpkg --configure -a, for indtil du gør det, installerer apt ingenting, og det daglige job stopper ved sit første tjek.

Er du i tvivl om, hvorvidt dine servere faktisk bliver patchet?

Den gratis servergennemgang ser også på, om opdateringer bliver installeret, og hvad der bliver sprunget over. Priser.

Gratis servergennemgang