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.
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 13 | Ubuntu 24.04 | |
|---|---|---|
| Installeret fra start | Afhænger af, hvordan systemet blev installeret; Debian-wikien advarer om, at den kan mangle | Ja, med sikkerhedsopdateringer slået til |
| 20auto-upgrades | Pakken skriver den med begge værdier sat til "1" ved installationen, fordi standardsvaret på dens opsætningsspørgsmål er ja | Findes, begge værdier "1" |
| Installerer fra | trixie-security plus selve trixie-udgivelsen, som kun ændrer sig ved punktudgivelser | noble-security, ESM-sikkerhedsopdateringer hvor de findes, og selve udgivelsen (release-pocket) til nye afhængigheder |
| Ignorerer som standard | trixie-updates, backports, alle pakkearkiver fra tredjepart | noble-updates, backports, proposed, PPA'er, alle pakkearkiver fra tredjepart |
| Tidsplan | Opgraderingstimeren kl. 06:00 servertid plus op til 60 minutters tilfældig forsinkelse | Samme |
| Automatisk genstart | Fra | Fra |
Tjeklisten
- Det er slået tilKør
apt-config dump | grep Periodic. Du skal seUpdate-Package-Lists "1"ogUnattended-Upgrade "1". Begge er 0 som standard i apts daglige script, så mangler20auto-upgrades, kører intet, ogAPT::Periodic::Enable "0"i en hvilken som helst fil slår det hele fra.sudo dpkg-reconfigure -plow unattended-upgradesskriver filen, hvis den aldrig har eksisteret, men ikke hvis nogen har slettet den. I så fald skriver ucfNot replacing deleted config fileog lader den mangle. Kør det somsudo UCF_FORCE_CONFFMISS=1 dpkg-reconfigure -plow unattended-upgrades, eller kopiér/usr/share/unattended-upgrades/20auto-upgradestilbage på plads. - Systemd-timerne går i gang
systemctl list-timers apt-daily.timer apt-daily-upgrade.timerviser sidste og næste kørsel, ogjournalctl -u apt-daily-upgrade.serviceviser, hvad der skete. En deaktiveret eller maskeret timer betyder ingen kørsler, uanset hvad konfigurationen siger. - 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ørerdpkg --configure -a, så ét strømsvigt midt i en opgradering kan stoppe alle senere kørsler uden nogen advarsel. Kør selvsudo apt-get check. Brokker den sig, gørsudo dpkg --configure -aden afbrudte installation færdig, ogsudo apt-get -f installreparerer ødelagte afhængigheder. - Pakken kommer fra en tilladt kildeHver kørsel i loggen starter med
Starting unattended upgrades script, efterfulgt afAllowed origins are:. Sammenlign den liste medapt-cache policy <package>, som viser, hvilket arkiv den nye version ligger i. På Ubuntu er en version inoble-updatesikke tilladt som standard, og det er pakker fra Docker, et PPA eller andre pakkearkiver, du selv har tilføjet, heller ikke. - Kør den manuelt
sudo unattended-upgrade --dry-run --debugsimulerer 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. - Intet er sat på hold
apt-mark showholdviser pakker på hold. unattended-upgrades lader dem være, og en rigtig kørsel, ikke en prøvekørsel, loggerPackage <name> is marked to be held back. - Blacklisten er ikke for bredPoster i
Package-Blacklister 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 loggerPackage <name> is blacklisted.for selve pakken, men kunis kept back because a related package is kept backfor de pakker, der afhænger af den. - 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. - 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 upgradespringer 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 installererapt upgradenye afhængigheder fra ethvert konfigureret pakkearkiv. Læs, hvadsudo apt full-upgradeforeslår at fjerne, før du accepterer det. - 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, ogapt upgradeholder 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, hvorforapt upgradeholder noget tilbage, men ikke hvorfor unattended-upgrades gør. Tillader du-updates, når trinvist udrullede opdateringer maskinen med det samme. - 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.aptventer, til den er færdig.apt-getstopper med det samme medCould 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
- En timer, der ser sund ud, men intet gør. Det officielle Ubuntu 24.04 Docker-image leveres med
/etc/apt/apt.conf.d/docker-disable-periodic-update, som indeholderAPT::Periodic::Enable "0". Begge timere stod på listen og var aktiveret, ogapt-daily-upgrade.servicesluttede med "Deactivated successfully", men jobbet skrev ingen stempelfil eller loglinje. Ethvert image eller konfigurationsværktøj kan gøre det samme, så tjekapt-config dump | grep Periodicfor enEnable-linje, før du stoler på timeren. - Sletter du 20auto-upgrades, bliver den væk. Efter vi havde fjernet filen, skrev
dpkg-reconfigure -plow unattended-upgradesNot replacing deleted config fileog lod den mangle, fordi ucf betragter en slettet konfigurationsfil som administratorens valg.UCF_FORCE_CONFFMISS=1foran kommandoen genskabte den. - En afbrudt dpkg ligner et låseproblem. Vi dræbte dpkg under en pakkes configure-trin. Derefter meldte
apt-daily-upgrade.servicestadig succes, intet nåede unattended-upgrades-loggen, og en manuelunattended-upgradeloggedeLock could not be acquired (another package manager running?), selv om intet andet kørte. Dens indbyggede reparation,AutoFixInterruptedDpkg, kørte aldrig, fordi den først kører, når låsen er taget.sudo dpkg --configure -aløste det. Sætter duAPT::Periodic::Verbose "1", skriver det daglige joberror encountered in cron job with "apt-get check"til journalen i stedet for at fejle lydløst. - Trinvis udrulning gør ikke unattended-upgrades langsommere. APT udskød en testopdatering, der var udrullet til 0 %, men unattended-upgrades installerede den på både Debian 13 og Ubuntu 24.04, så snart dens kilde var tilladt. På Debian planlagde den også en opdatering udrullet til 50 %, som APT udskød for den maskine. Tilføjer du
-updatespå Ubuntu, så regn med at få opdateringer, førapt upgradeville tilbyde dem. - Automatisk genstart ser kun på flagfilen. Med
Automatic-Reboot "true"og/var/run/reboot-requiredtil stede kaldte unattended-upgradesshutdown -rved slutningen af en kørsel, der ikke havde installeret noget. En kerne, du installerede manuelt tidligere på dagen, får derfor sin genstart ved den næste automatiske kørsel.
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
- unattended-upgrades README, unattended-upgrades-projektet, GitHub
- unattended-upgrade(8) manual page, Debian 13, unattended-upgrades 2.12
- unattended-upgrades 2.12 source: 50unattended-upgrades.Debian, unattended-upgrade, unattended-upgrade-shutdown, debian/templates, Debian
- 50unattended-upgrades.Ubuntu, unattended-upgrades 2.9.1+nmu4ubuntu1, Ubuntu
- apt 3.0.3 source: apt.systemd.daily, apt-daily.timer, apt-daily-upgrade.timer, Debian
- UnattendedUpgrades (PeriodicUpdates), Debian Wiki, sidst ændret 10. juli 2026
- stable-updates, Debian Wiki
- Automatic updates, Ubuntu Server-dokumentationen
- About apt upgrade and phased updates, Ubuntu Server-dokumentationen, opdateret 26. juni 2026
- apt_preferences(5): Phased Updates, Debian 13
- apt(8) og apt-mark(8), Debian 13
- 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.
Den gratis servergennemgang ser også på, om opdateringer bliver installeret, og hvad der bliver sprunget over. Priser.