Hantera Azure Linux-paket med DNF5

Den här artikeln beskriver vanliga pakethanteringsuppgifter för Azure Linux, inklusive:

  • Var databasens konfiguration finns.
  • Hur äldre pakethanterarkommandon mappas till DNF5.
  • Hur DNF cachelagrar metadata och löser paket.
  • Hur kernels och andra paket med endast installation hanteras.
  • Så här aktiverar du obevakade uppdateringar.
  • De vanligaste DNF-kommandona.

Note

Azure Linux 4.0 finns nu i förhandsversion och är strikt begränsad till utvärderings- och testningsändamål. Den är inte lämplig för produktionsanvändning.

Konfiguration av lagringsplats

DNF5 läser databasdefinitioner från /etc/yum.repos.d/. Katalognamnet bevaras från YUM för kompatibilitet. DNF5 läser från den här katalogen.

Varje .repo fil i katalogen är en konfigurationsfil med oformaterad text som talar om för DNF var paket ska hittas, om de ska verifieras med GPG och om lagringsplatsen är aktiverad som standard. Huvudkonfigurationsfilen för DNF är /etc/dnf/dnf.conf, som styr det globala beteendet, till exempel cacheinställningar, gränsen för endast installation och proxykonfiguration.

Azure Linux skickar kompatibilitetssymlänkar så att äldre kommandon (yum, dnf (DNF4), microdnf, tdnf) alla skickas till DNF5:

lrwxrwxrwx.  1 root root       4  yum -> dnf5
lrwxrwxrwx.  1 root root       4  microdnf -> dnf5
-rwxr-xr-x.  1 root root 1614408  dnf5
lrwxrwxrwx.  1 root root       4  dnf -> dnf5
lrwxrwxrwx.  1 root root       4  tdnf -> dnf5

De vanliga underkommandona fungerar alla via symlänkarna. Specialfall som var beroende av DNF4:s interna funktioner eller microdnf-specifikt beteende kanske inte längre fungerar. Mer information om vad som har ändrats finns i följande resurser:

Så här löser DNF5 paket

När du kör ett DNF-kommando utför DNF5 följande steg för att avgöra vilka paket som ska installeras, uppgraderas eller ta bort:

  1. Läser in varje .repo fil i /etc/yum.repos.d/ och väljer de lagringsplatser som har markerats som aktiverade.
  2. Uppdaterar förrådets metadata och lagrar dem lokalt i cache under /var/cache/libdnf5. Cachelagrade metadata innehåller paketlistan, version och beroendeinformation, kontrollsummor och signaturer.
  3. Löser den begärda installationen, borttagningen eller uppgraderingen mot de aktiverade lagringsplatserna, väljer paketversioner och verifierar integritet och signaturer innan transaktionen tillämpas.

Inaktiverade paketkällor ignoreras om du inte uttryckligen aktiverar dem med --enablerepo=<repo-id> för ett enstaka kommando.

Cachen /var/cache/libdnf5 finns så att DNF inte behöver ladda ned metadata på nytt för varje anrop. Kör dnf clean all för att tömma den (se DNF-kommandon som används ofta).

Paket som endast installeras och flera installerade versioner

Vissa paket, framför allt kerneln, installeras sida vid sida i stället för att uppgraderas på plats. DNF5 styr detta via två inställningar i /etc/dnf/dnf.conf:

  • installonlypkgs: En lista över paketnamn som aldrig uppgraderas på plats. Kärnpaket är standardalternativet.
  • installonly_limit: Maximalt antal versioner av ett paket med endast installation som kan samexistera i systemet. Standardvärdet är 3.

När en ny version installeras och gränsen överskrids tar DNF bort den äldsta versionen automatiskt.

För kerneln ger detta dig:

  • Reservstart: Om en ny kärna inte går att starta kan GRUB fortfarande starta en tidigare kärna som man vet fungerar.
  • Validering: Du kan installera och testa en ny kernel utan att ta bort den som körs.
  • Variantsamlevnad: Du kan installera olika kernel-versioner (till exempel med olika funktionsuppsättningar) samtidigt.

Varje kernelversion är en separat RPM, så DNF spårar och tar bort dem som andra paket.

Obemannade uppdateringar med dnf-automatic

dnf-automatic är en tjänst som regelbundet söker efter, laddar ned och eventuellt tillämpar paketuppdateringar. Den drivs av en systemtimer i stället för att köras som en långlivad daemon.

Installera dnf-automatic

Installera dnf-automatic med följande kommando:

sudo dnf install -y dnf-automatic

dnf-automatic Aktivera timern

dnf-automatic Aktivera timern omedelbart och över omstarter med hjälp av följande kommando:

sudo systemctl enable --now dnf-automatic.timer
  • enable konfigurerar timern så att den startar vid start.
  • --now startar timern i den aktuella sessionen.

Kontrollera status för dnf-automatictimern

Kontrollera att timern är aktiv och se när den senast kördes med följande kommando:

systemctl status dnf-automatic.timer

Typiska utdata ser ut som i följande exempel:

● dnf5-automatic.timer - dnf-automatic timer
     Loaded: loaded (/usr/lib/systemd/system/dnf5-automatic.timer; enabled; preset: disabled)
     Active: active (waiting) since Thu 2026-03-26 14:36:54 UTC; 13min ago
 Invocation: f6984eeceb7c40df99bca243f3da728c
    Trigger: Fri 2026-03-27 06:34:18 UTC; 15h left
   Triggers: ● dnf5-automatic.service

Active: active (waiting) är att vänta: den underliggande tjänsten är en engångstjänst som endast körs när timern aktiveras och avslutas sedan. Raden Trigger: visar nästa schemalagda körning.

Visa en lista över nästa schemalagda körning av dnf-automatic timern

Visa en lista över nästa körning tillsammans med andra timers med följande kommando:

systemctl list-timers dnf-automatic.timer

Exempel på utdata:

NEXT                        LEFT LAST PASSED UNIT                 ACTIVATES
Fri 2026-03-27 06:34:18 UTC  15h -         - dnf5-automatic.timer dnf5-automatic.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.

Valfri konfiguration av dnf-automatic

Du kan konfigurera automatiskt uppdateringsbeteende genom att lägga till /etc/dnf/automatic.conf filen. Den här filen styr om uppdateringar endast laddas ned, tillämpas automatiskt eller begränsas till säkerhetsuppdateringar. Fullständig konfigurationsinformation finns i den dnf5-automatiska dokumentationen

Note

Automatiska uppdateringar installeras via dnf-automatisk, men systemet startas inte om automatiskt. Om en kernel (eller ett annat paket som krävs för omstart) uppdateras börjar den nya versionen inte gälla förrän nästa omstart. Efter uppdateringar kontrollerar du om en omstart krävs och schemalägger en efter behov.

DNF-kommandon som används ofta

Följande kommandon omfattar huvuddelen av den dagliga pakethanteringen på Azure Linux.

dnf clean all

dnf clean all tar bort allt DNF har cachelagrat under /var/cache/libdnf5. Använd den för att:

  • Återställa från skadade eller inaktuella metadata som orsakar transaktionsfel.
  • Krymp containeravbildningar genom att ta bort paketcachen efter installationer i samma RUN lager.
  • Frigör diskutrymme.

Containerexempel:

RUN dnf install -y package1 package2 \
    && dnf clean all

dnf search matchar nyckelord mot paketnamn och sammanfattningar. Ett exempel:

dnf search lsof

Exempel på utdata:

Updating and loading repositories:
 Azure Linux 4.0 - x86_64 - Microsoft                        100% |   7.6 KiB/s |   4.8 KiB |  00m01s
Repositories loaded.
Matched fields: name (exact)
 lsof.x86_64   A utility which lists open files on a Linux/UNIX system

dnf provides

dnf provides hittar paketet som äger en viss fil, ett kommando eller en funktion. Ett exempel:

dnf provides lsof

Exempel på utdata:

Updating and loading repositories:
Repositories loaded.
lsof-4.98.0-8.azl4.20260303.x86_64 : A utility which lists open files on a Linux/UNIX system
Repo         : @System
Matched From :
Provide      : lsof = 4.98.0-8.azl4.20260303

dnf install

dnf install installerar ett eller flera paket tillsammans med deras körningsberoenden:

sudo dnf install lsof

Exempel på utdata:

Updating and loading repositories:
Repositories loaded.
Package           Arch     Version                  Repository    Size
Installing:
 lsof             x86_64   4.98.0-8.azl4.20260303   azurelinux  578.5 KiB

Transaction Summary:
 Installing:         1 package

Total size of inbound packages is 226 KiB. Need to download 226 KiB.
After this operation, 579 KiB extra will be used (install 579 KiB, remove 0 B).
Is this ok [y/N]: y
[1/1] lsof-0:4.98.0-8.azl4.20260303.x86_64                100% | 641.9 KiB/s | 226.0 KiB |  00m00s
[1/1] Total                                               100% | 640.1 KiB/s | 226.0 KiB |  00m00s
Running transaction
[1/3] Verify package files                                100% | 500.0   B/s |   1.0   B |  00m00s
[2/3] Prepare transaction                                 100% |  23.0   B/s |   1.0   B |  00m00s
[3/3] Installing lsof-0:4.98.0-8.azl4.20260303.x86_64     100% |   3.0 MiB/s | 580.2 KiB |  00m00s
Complete!

dnf remove

dnf remove avinstallerar ett paket tillsammans med eventuella beroenden som installerades enbart för det:

sudo dnf remove -y lsof

Exempel på utdata:

Package           Arch     Version                  Repository    Size
Removing:
 lsof             x86_64   4.98.0-8.azl4.20260303   azurelinux  578.5 KiB

Transaction Summary:
 Removing:           1 package

After this operation, 579 KiB will be freed (install 0 B, remove 579 KiB).
Is this ok [y/N]: y
Running transaction
[1/2] Prepare transaction                                 100% |  27.0   B/s |   1.0   B |  00m00s
[2/2] Removing lsof-0:4.98.0-8.azl4.20260303.x86_64       100% |  72.0   B/s |  11.0   B |  00m00s
Complete!

dnf upgrade

dnf upgrade uppdaterar installerade paket till de senaste tillgängliga versionerna.

sudo dnf upgrade

När allt är aktuellt är utdata korta. Ett exempel:

Updating and loading repositories:
Repositories loaded.
Nothing to do.

Tip

Skicka -y till install, removeeller upgrade i icke-interaktiva kontexter som skript, CI-pipelines och containerversioner. Alla DNF-åtgärder som ändrar systemet kräver rot, så kör den under sudo eller som root.