From Mageia wiki
Jump to: navigation, search


Vertalingsoverzicht:
Dit artikel is een gelocaliseerde versie van Using DNF. De laatste vertaling is gedateerd 25/12/2023. U kunt meehelpen om de vertaling te synchroniseren, als er wijzigingen zijn geweest in de originele versie.
Drakconf multiflag.png
Andere talen
Deutsch ; English ; Español ; Français ; Nederlands ; 简体中文 ;

Samenvatting

DNF is de rijzende ster in pakketbeheer, onder meer voor RPM-pakketten. Dnfdragora is hiervoor de grafische schil. De opvolger van DNF is DNF5. DNF wordt sinds Mageia 6 standaard geïnstalleerd. DNF5 nog niet. Mogelijk wordt DNF5 in de toekomst het standaardprogramma voor pakketbeheer binnen Mageia 10.

DNF is bijna klaar is als alternatief beheerprogramma voor de urpmi-pakketdepots, dus u kunt het eens proberen te gebruiken. Voordat u met DNF aan de slag gaat, lees eerst deze WAARSCHUWING over het gebruik van 'wees-pakketten': https://wiki.mageia.org/en/Using_DNF#Warning_about_orphans_mechanisms. Bekijk ook de foutmeldingen in onze Bugzilla. Aan het einde van dit document vindt u links naar handleidingen.

Zie ook: Feature:Add DNF as Alternate Repository Manager

Installeren

Stabiel

Normaal gesproken wordt het DNF-pakket sinds Mageia 6 standaard geïnstalleerd. Zo niet: urpmi dnf.

Volgende generatie DNF5

De volgende generatie van DNF DNF5 is beschikbaar in Cauldron (ons pakketdepot voor toekomstige Mageia-uitgave 10). Deze nieuwe versie DNF5 is feitelijk een volledige herschrijving, maar de meeste oude commando's en hun schakelaars werken gewoon goed.

Om DNF5 te installeren gebruikt u in een tekstconsole het commando: dnf install dnf5

Het pakket DNF5 kunt u, geheel op eigen risico, op dezelfde manier installeren als de stabiele tak, met een 5 toegevoegd aan het einde.

Voorbeeld: dnf5 upgrade --refresh --allowerasing voor het vernieuwen van het systeem.

Documentatie: https://dnf5.readthedocs.io/en/latest/

Kies pakketdepots

Standaard zijn twee pakketdepots ingeschakeld en deze moeten altijd zijn: Core en Core updates; in DNF heten ze mageia-x86_64 en updates-x86_64 voor een 64-bits systeem; of mageia-i586 en updates-i586 voor een 32-bit systeem.

Als u pakketten uit een ander pakketdepot hebt geïnstalleerd, moet u altijd dat depot en het bijbehorende depot met herzieningen ingeschakeld hebben.

Merk op dat dit ook belangrijk is als u overschakelt van urpmi naar DNF, of misschien beide naast elkaar gebruikt; u moet dan de overeenkomstige pakketdepots in beide ingeschakeld te hebben!

  • Als niet-vrije (Nonfree) of besmette (Tainted) pakketdepots gewenst zijn, kunnen deze worden geactiveerd met behulp van dnf config-manager, zoals u ziet in dit voorbeeld voor een 64-bits systeem (vervang x86_64 door i586 voor 32-bits):

dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree
dnf config-manager --set-enabled mageia-x86_64-tainted updates-x86_64-tainted

  • 32-bits pakketdepots zijn standaard uitgeschakeld op 64-bit x86. Als u ze nodig hebt:

dnf config-manager --set-enabled mageia-i586 updates-i586
Herhaal dit op dezelfde manier (zie vorig voorbeeld) als u ook Nonfree en Tainted nodig hebt (vervang x86_64 door i586).

  • Voor Cauldron (toekomstige Mageia-uitgaven) vervangt u in bovenstaande commando's "mageia" door "cauldron" en "updates", "backports", enz. door respectievelijk "cauldron-updates", "cauldron-backports", enzovoorts.
  • Als u de selectie van mirrors (spiegel-servers) wilt overschrijven met uw favoriete spiegelserver, kunt u dit doen door de configuratiebestanden van het pakketdeot in /etc/yum.repos.d te bewerken. Verwijder het commentaar op de regel "baseurl=" en wijzig de URL, zodat deze naar de spiegelserver van uw voorkeur verwijst. Hierdoor worden automatisch de eigenschappen "metalink" en "mirrorlist" overschreven, zodat de aangewezen spiegel wordt gebruikt. Als u wilt, kunt u de vermeldingen "metalink=" en "mirrorlist=" van commentaar voorzien, maar dat elimineert het failover-mechanisme dat optreedt wanneer de "primaire" spiegel niet functioneert.

Voorbeeld: Hier is een lijst met pakketdepots op een 64-bits systeem met niet-vrije en besmette pakketdepots en met 32-bits pakketdepots:

 
$ dnf repolist
repo id                                           repo name
mageia-i586                                       Mageia 9 - i586
mageia-i586-nonfree                               Mageia 9 - i586 - Nonfree
mageia-i586-tainted                               Mageia 9 - i586 - Tainted
mageia-x86_64                                     Mageia 9 - x86_64
mageia-x86_64-nonfree                             Mageia 9 - x86_64 - Nonfree
mageia-x86_64-tainted                             Mageia 9 - x86_64 - Tainted
updates-i586                                      Mageia 9 - i586 - Updates
updates-i586-nonfree                              Mageia 9 - i586 - Nonfree - Updates
updates-i586-tainted                              Mageia 9 - i586 - Tainted - Updates
updates-x86_64                                    Mageia 9 - x86_64 - Updates
updates-x86_64-nonfree                            Mageia 9 - x86_64 - Nonfree - Updates
updates-x86_64-tainted                            Mageia 9 - x86_64 - Tainted - Updates  

Enkele opdrachten om aan de slag te gaan

Zie ook de documentatie: documentatie.

Als root:

  • dnf install ri-li installeert ri-li
  • dnf reinstall ri-li installeert ri-li opnieuw
  • dnf downgrade ri-li draait ri-li terug
  • dnf remove ri-li verwijdert ri-li
  • dnf makecache vernieuwt de metadata (alles wat beschikbaar is in de repo's)
  • dnf check-update --refresh vernieuwt de metadata en controleert op nieuwe herzieningen
  • dnf upgrade --refresh vernieuwt de metadata en voert alle beschikbare opwaarderingen uit
  • dnf upgrade --best dwingt pogingen af om de best beschikbare versies te selecteren, wat kan helpen bij het vaststellen van afhankelijkheidsfouten
  • dnf distro-sync --refresh ververst de metagegevens en synchroniseert de pakketset die op de computer is geïnstalleerd met de versies in de pakketdepots
  • dnf distro-sync --allowerasing --best helpt bij het vernieuwen van een pakket met een gewijzigd versienummer, zoals van lib64clang3.8 naar lib64clang3.9
  • dnf history list toont de geschiedenislijst van installeren/verwijderen/vernieuwen
  • dnf history info 12 laat zien wat er gebeurde tijdens onderwerp 12 uit de geschiedenislijst
  • dnf shell roept de interactieve shell aan om meerdere acties uit te voeren als één transactie
  • dnf install --enablerepo updates_testing-x86_64 caja installeert een pakket (voor caja) vanuit een specifiek pakketdepot (updates_testing-x86_64)

Als gebruiker (of root):

  • dnf help toont een helppagina
  • dnf search fax toont alle pakketten met "fax" in de naam of in de samenvatting
  • dnf repolist toont de laatste metadata controle, de ingeschakelde pakketdepots en hun grootte. Eerst worden alle nog niet gedownloade bestanden gedownload.

Korte commandovarianten

Vanaf DNF 2.6.2 zijn er korte afkortingen voor veelgebruikte opdrachten:
Als root:

  • dnf in ri-li installeert ri-li
  • dnf ri ri-li installeert ri-li opnieuw
  • dnf dg ri-li draait de herzieningen van ri-li terug
  • dnf rm ri-li verwijdert ri-li
  • dnf mc vernieuwt de metadata (wat beschikbaar is in de repo's)
  • dnf up voert alle beschikbare herzieningen uit
  • dnf dsync synchroniseert de pakketset die op de computer is geïnstalleerd met versies in de pakketdepots
  • dnf sh roept de interactieve shell aan om meerdere acties als één transactie uit te voeren

Als gebruiker (of root):

  • dnf se fax toont alle pakketten met "fax" in de naam of in de samenvatting

Als u een niet-Engels systeem heeft en de uitvoer in het Engels nodig heeft, zet dan LANGUAGE=C op dezelfde regel vóór het commando.

Grafische schil dnfdragora installeren

De grafische schil installeren: dnf in dnfdragora

De grafsche schil starten: Mageia menu > Extra > Systeemtools > dnfdragora. (Of u tikt in de tekstconsole: dnfdragora )

Let op: mga#21453 - dnfdragora onthoudt de bronselectie van pakketten niet.

Waarschuwing over weespakketten

Weespakketten zijn pakketten die als bibliotheken of afhankelijkheden worden geïnstalleerd op uw systeem, wanneer u programma's installeert. Deze hulppakketten blijven soms op uw systeem bestaan, ook nadat het programma waar ze bijhoren is verwijderd. Het weggooien van weespakketten kan tot een instabiel systeem leiden, zeker wanneer u de pakketstelsels URPMI en DNF combineert. Het weggooimechanisme wordt onbetrouwbaar wanneer u beide stelsels door elkaar gebruikt. Zie: orphan mechanisms .

Als u DNF gaat gebruiken, schakel dan zo snel mogelijk na een verse installatie hiernaar over.

URPMI-updater-applet verwijderen

Verwijder mgaonline.

DNF-updater-applet installeren

Installeer dnfdragora-updater.

Synchroniseren met de pakketdepots

In dit hoofdstuk demonstreren we de offline synchronisatie van geïnstalleerde pakketten. Dit betekent dat het DNS-systeem eerst in een voorbereidingsstap bekijkt wat er moet gebeuren, dit vervolgens bij de gebruiker verifieert en daarna alle benodigde pakketten downloadt en scripts voorbereidt. Latere geeft de gebruiker een ander commando, waardoor het systeem opnieuw opstart en het proces uit tijdens de systeemstart uitvoert. Dit minimaliseert het risico op problemen vergeleken met het wijzigen van pakketten op een volledig draaiend systeem.

(Voor het werken op een draaiend systeem, zie "dnf distro-sync" hierboven kort beschreven.)

Deze opdrachten synchroniseren de geïnstalleerde pakketversies met die in de ingeschakelde pakketdepots - zowel herzieningen, als ook installatie-afhankelijkheden, en ook downgrades; optioneel verwijderen deze commando's ook pakketten die niet in pakketdepots bestaan.

Dit is bijvoorbeeld handig om uit te voeren op een systeem dat u vóór de uitgave hebt gebruikt voor het testen van Mageia, of u hebt deelgenomen aan het testen van herzieningen, of u wilt er nu zeker van zijn dat u alleen officiële pakketversies gebruikt. De synchronisatie komt ook van pas als de opwaardering (upgrade) van Mageia fout is gegaan.

Zorg ervoor dat de juiste pakketdepots staan ingeschakeld, zie Kies pakketdepots. Pakketdepots kunnen voor de uitvoering van deze opdracht worden uitgeschakeld, zie onderstaand voorbeeld, optie "disablerepo".

U moet het commando eerst installeren, als root: dnf offline-distrosync download --disablerepo=\*cauldron\* --allowerasing

Het uitvoeren van het commando gaat als volgt:

dnf offline-distrosync download --disablerepo=\*cauldron\* --allowerasing

Houd er rekening mee dat u de optie "--allowerasing" misschien niet wilt hebben aan staan, omdat als dit iets kan wissen dat u nodig hebt en niet opnieuw kunt installeren. Het gedeelte --disablerepo is bedoeld voor het overslaan van geconfigureerde pakketdepots van Cauldron (de toekomstie Mageia-uitgave). U kunt hetzelfde doen voor bijvoorbeeld alle Testing-opslagplaatsen als u die heeft aan staan.


Hier is een voorbeeld uitgevoerd op een systeem dat Cauldron/Mageia 9 aan het testen was vóór de release, en ik een tijdje nadat ik overschakelde naar Release, mij realiseerde dat sommige pakketten verkeerde versies hadden. DNF schoot mij te hulp :) Zoals u kunt zien heeft DNF pakketten vernieuwd, hun afhankelijkheden geïnstalleerd, pakketten gedowngraded en pakketten verwijderd. Mijn Mageia-systeem had DNF nog niet eerder gebruikt, dus moest ik dezelfde pakketdepots inschakelen die urpmi gebruikte: Nonfree, Tainted, en 32-bits pakketdepots.

 
$ LANGUAGE=C sudo dnf offline-distrosync download --disablerepo=\*cauldron\* --allowerasing
No repository match: *cauldron*
Mageia 9 - i586 8,8 kB/s | 2,5 kB 00:00
Mageia 9 - i586 - Updates 5,5 kB/s | 1,5 kB 00:00
Mageia 9 - i586 - Nonfree 6,0 kB/s | 2,0 kB 00:00
Mageia 9 - i586 - Nonfree - Updates 4,3 kB/s | 1,5 kB 00:00
Mageia 9 - x86_64 - Nonfree 4,1 kB/s | 2,0 kB 00:00
Mageia 9 - x86_64 - Nonfree - Updates 4,5 kB/s | 1,5 kB 00:00
Mageia 9 - i586 - Tainted 2,4 kB/s | 1,5 kB 00:00
Mageia 9 - i586 - Tainted - Updates 4,6 kB/s | 1,5 kB 00:00
Mageia 9 - x86_64 - Tainted 4,5 kB/s | 1,5 kB 00:00
Mageia 9 - x86_64 - Tainted - Updates 4,7 kB/s | 1,5 kB 00:00
Mageia 9 - x86_64 7,4 kB/s | 2,5 kB 00:00
Mageia 9 - x86_64 - Updates 5,7 kB/s | 1,5 kB 00:00
Dependencies resolved (afhankelijkheden opgelost)
===================================================================================================================
 Package                                Architecture Version                     Repository                   Size
===================================================================================================================
Installing:
 kernel-desktop                         x86_64       6.4.9-4.mga9                mageia-x86_64                80 M
Installing dependencies:
 lib64bind9.18.15                       x86_64       9.18.15-2.mga9              mageia-x86_64               1.2 M
Removing:
 kernel-desktop                         x86_64       6.3.9-1.1.mga9              @System                      89 M
 kernel-desktop                         x86_64       6.4.8-3.mga9                @System                      90 M
 kernel-desktop                         x86_64       6.4.8-4.mga9                @System                      90 M
 kernel-desktop                         x86_64       6.4.9-2.mga9                @System                      90 M
Downgrading:
 bind-utils                             x86_64       9.18.15-2.mga9              mageia-x86_64               194 k
- 65 regels weggelaten in dit bericht... -
 wireless-regdb                         noarch       20230503-1.mga9             mageia-i586                  15 k

Transaction Summary
==================================================================================================================
Install     2 Packages
Remove      4 Packages
Downgrade  67 Packages

Total download size: 143 M
DNF will only download packages, install gpg keys, and check the transaction.
Is this ok [y/N]: y
Downloading Packages:
(1/69): gurpmi-8.131-1.mga9.noarch.rpm                                             254 kB/s |  25 kB     00:00    
 - 67 regels weggelaten in dit bericht... -
(69/69): kernel-desktop-6.4.9-4.mga9.x86_64.rpm                                    1.9 MB/s |  80 MB     00:41  
--------------------------------------------- --------------------------------------------- ---------------
Total                                                                              2.2 MB/s | 143 MB     01:06     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Complete!
Transaction saved to /var/lib/dnf/system-upgrade/system-upgrade-transaction.json.
Download complete! Use 'dnf offline-distrosync reboot' to start the upgrade.
To remove cached metadata and transaction use 'dnf offline-distrosync clean'
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.   
 

Lees het bovenstaande verslag aandachtig door. Als u wilt, kunt u de opslagplaatsen of de opties wijzigen in de tekstconsole, en ze opnieuw uitvoeren.

Voordat u besluit uit te voeren:

  1. Sla uw werk op en sluit applicaties!
  2. Activeer de opwaardering: dnf offline-distrosync reboot - /!\ OPMERKING: Hiermee wordt uw systeem onmiddellijk opnieuw opgestart! /!\

Wanneer het systeem weer actief is, zorg er dan voor dat het pakketdepotmageia-repos-cauldron is verwijderd: dnf remove mageia-repos-cauldron.

Meer informatie: Documentation here.

Vernieuw een nieuwe Mageia-uitgave met DNF

U kunt Mageia in slechts een paar stappen vernieuwen naar een nieuwe uitgave. Houd er rekening mee dat alle opdrachten als root moeten worden uitgevoerd.

  1. Zorg ervoor dat de juiste pakketdepots staan ingeschakeld, zie Kies pakketdepots.
  2. Zorg er voor dat u volledig up-to-date bent: dnf --refresh upgrade
  3. Installeer de plug-in voor systeemopwaardering: dnf install 'dnf-command(system-upgrade)'
  4. Start de opwaardering aldus: dnf system-upgrade --releasever <targetversion> download --allowerasing.

Als u bijvoorbeeld wilt vernieuwen naar Mageia 9, gebruikt u 9 voor <targetversion>.

    1. Het systeem zal toestemming vragen voordat pakketten worden gedownload en zal melden hoeveel ruimte er nodig is. Als u niet beschikt over de opslagruimte die nodig is (plus een paar honderd MB vrije ruimte) op partitie /var (if /var is niet apart maar onderdeel van {{folder|/} } partitie, voeg nog een paar honderd MB) toe, maak dan voldoende ruimte vrij, of voeg de optie --downloaddir path_to_directory_with_free_space toe aan deze en de volgende systeemupgradeopdrachten. Zorg er ook voor dat / extra ruimte heeft voor de grotere nieuwe programma's. Houd er rekening mee dat er misschien niet alleen ruimte moet zijn voor slechts één, maar voor twee kernels (zie Extra kernelsmaak hieronder). Vooral als u een aparte /boot partitie hebt, controleer dan of daar voldoende ruimte voor is.
    2. Als u er zeker van bent dat u voldoende ruimte hebt, zeg dan ja om de opwaardering te laten downloaden. Er zal ook een droge transactietest worden uitgevoerd.
  1. Als de download- en transactietest is geslaagd,
    1. Sla uw werk op en sluit programma's!
    2. Activeer de opwaardering: dnf system-upgrade reboot
Waarschuwing!
Dit commando herstart uw Mageia-systeem onmiddellijk!

Geniet nu van een drankje terwijl u naar de bubbels op het opstartbeeldscherm kijkt - en bekijk de berichten op het scherm die beschrijven wat er gebeurt. Als u klaar bent, wordt het systeem opnieuw opgestart, zodat u kunt genieten van uw nieuwe Mageia.

Een container opzetten voor een ongebruikelijke architectuur

Vanaf DNF 2.6.2 is het mogelijk om chroots of containers te bouwen voor vreemde architecturen.

De procedure voor het maken van een ARMv7-chroot op een x86_64-systeem is als volgt:

  1. Installeer qemu-user-static op het hostsysteem.
  2. Start systemd-binfmt.service opnieuw op om nieuwe informatie over het binaire formaat van kracht te laten worden.
  3. Maak de map aan van uw vreemde arch-chroot. Bijvoorbeeld /var/lib/machines/mga8armv7hl
  4. Voer DNF uit als root om de install-root te maken:
 dnf --installroot=/var/lib/machines/mga8armv7hl --releasever=8 --forcearch=armv7hl --repofrompath=mga8rel,http://mirrors.kernel.org/mageia/distrib/8/armv7hl/media/core /release/ --repofrompath=mga8up,http://mirrors.kernel.org/mageia/distrib/8/armv7hl/media/core/updates/ --disablerepo=* --enablerepo=mga8rel --enablerepo=mga8up -- setopt=install_weak_deps=False install basesystem-minimal-core dnf

Test ten slotte de chroot om te zien of er een programma draait. Hier is een suggestie voor een commando (uitvoeren als root): chroot /var/lib/machines/mga8armv7hl /usr/bin/uname -r -m

Documentatie