Pakketbeheerders

APT, YUM & DNF

Figuur 1. # dnf info shutter

De meeste Linux distributies hebben tegenwoordig een grafische pakketbeheerder, bij Debian GNU/>Linux is dat bijv. Synaptic wat een GUI is voor APT (Advanced Packaging Tool). Maar andere distributies hebben zo hun eigen programma. Toch vindt ik het beter om in bepaalde gevallen een pakketbeheerder in de commando-regel te gebruiken. Een logische situatie is, wanneer je via SSH bent verbonden met een andere PC (of server), en je wil pakketten upgraden/updaten, of nieuwe software toevoegen. Omdat een server meestal geen X-server gebruikt (is onnodig en neemt enkel rekenkracht van de CPU in beslag) kun je niet snel met een tool zoals VNC of TeamViewer op deze systemen inloggen. (Ook kunnen deze toepassingen voor extra beveiligingsproblemen zorgen).

De 3 pakketbeheerders die ik gebruik zijn APT (Debian en afgeleiden zoals Ubuntu, Linux Mint, etc.) , YUM (Red Hat Enterprise Linux (RHEL) en afgeleiden zoals CentOS, en DNF (Fedora, etc.). De andere paketbeheerders, die tot de Arch of Gentoo familie behoren (pacman, e.d), komen in een ander (nog te publiceren) artikel aan bod.

Waarom deze ? Omdat dit op het moment de meest voorkomende systemen zijn, maar er zijn er nog meer zoals oa. pacman, packer, emerge, rpm etc.

Eerst een woordje uitleg over APT (Advanced Packaging Tool).

De pakketbeheerder van Debian is niet één specifiek programma zoals YUM of DNF, maar een aantal programma’s waaronder APT-GET en APT-CACHE. Met APT-GET doe je bijv. een installatie of een deinstallatie en met APT-CACHE doorzoek je de lijst met beschikbare software. Omdat dit soms voor verwarring zorgt is men begonnen met een nieuw programma, dat de verschillende programma’s samenvoegt. Dit programma heet gewoon APT en is een onderdeel van het pakket APT (net zoals APT-CACHE en APT-GET). APT is nog in ontwikkeling en zal bijv. bij gebruik in scripts een melding geven dat het hier nog niet klaar voor is. Ook is het goed om te weten dat APT (bij Debian) niet hetzelfde is als APT op bepaalde versies van Linux Mint (waar het een python script is met deze naam).
  1. APT betekend Advanced Packaging Tool.
  2. Maar APT, is ook een commando voor pakket-beheer.
  3. Bij oudere versies van Debian (voor Debian 8.0 of Jessie) is het een groep van programma’s zoals APT-CACHE en APT-GET.
  4. Bij nieuwere versies van Debian (na Jessie) is er een programma met de naam APT toegevoegd.
  5. Het nieuwere programma APT heeft de meest gebruikte opties van APT-GET en APT-CACHE maar niet allemaal.
  6. Er zijn versies van Linux Mint die ook een programma met de naam APT hebben, maar dat is niet hetzelfde programma maar een script

En een woordje uitleg over YUM.

YUM is lang de standaard pakketbeheerder geweest bij Fedora, maar sinds Fedora 22 is het vervangen door het modernere DNF. De huidige stabiele versies van RHEL en CentOS (versie 7), werken nog met YUM maar zullen zeer waarschijnlijk ook overstappen op DNF (omdat Fedora de “Upstream” distributie is waar nieuwe technologie voor RHEL op ontwikkeld en getest wordt. En CentOS (Community Enterprise Operating System) is gebaseerd op RHEL). Daarom zal ik proberen om ook de correcte DNF commando’s te geven in dit artikel.

Waarom een CLI tool gebruiken als er een GUI beschikbaar is ?

Een simpel voorbeeld: Ik gebruik het programma “shutter” om mijn schermafbeeldingen te maken, dit programma is beschikbaar in het pakket met de naam “shutter” (bij Debian. Bij Fedora en CentOS 7 wordt dit pakket niet herkend). Het pakket “shutter” heeft ook enkele andere programma’s nodig om te kunnen werken. Als ik dit via een GUI moet installeren moet ik:
  1. Het GUI programma (Synaptic bijv.) opstarten.
  2. Het “beheerders” (of root) wachtwoord ingeven.
  3. In SYNAPTIC zoeken naar het pakket SHUTTER.
  4. Het programma zoeken in de lijst met programma’s die SYNAPTIC weergeeft (soms maar enkele of 1 maar soms ook veel meer).
  5. Het programma selecteren en instellen om te installeren.
  6. Op de knop TOEPASSEN klikken en bevestigen.
  7. Wachten tot SYNAPTIC klaar is, bevestigen en afsluiten.

Als ik hetzelfde programma nu wil installeren kan ik ook in de CLI het volgende doen: $ sudo apt update && sudo apt install shutter -y

Wat doet dit commando:
  1. Na ingeven van het root (beheerders) wachtwoord zal de lijst van beschikbare pakketten in de softwarebibliotheek van Debian vernieuwd worden. (dit heb ik bij SYNAPTIC overgeslagen).
  2. Als dit succesvol is afgerond zal het 2de commando (na &&) het programma shutter en de pakketten die het nodig heeft, downloaden en installeren. Dankzij het -y parameter op het einde van het commando zal ik geen bevestiging moeten ingeven om het programma te installeren. (dit is niet altijd de ideale methode omdat je wil kijken wat er allemaal geïnstalleerd en vooral wat er verwijdert wordt).

Je ziet dus dat de CLI methode in dit voorbeeld sneller werkt dan de GUI methode.

Indien er geen terminal/konsole open is, zal ik deze nog moeten openen natuurlijk, wat je kunt zien als 1 extra stap (maar zoals ik al zei, komt er bij SYNAPTIC ook nog een extra stap bij).

Maar als je een “drop-down” terminal gebruikt (bijv. Tilda) open je snel zo’n venster met F1 of Fn+F1 (afhankelijk van de keyboard lay-out). Meer over terminals, volgt in een ander artikel.

Laten we nu beginnen met de basis:

Omdat niet iedere Package Manager dezelfde mogelijkheden heeft ga ik hier geen tabel plaatsen met een APT commando en dan de respectievelijke YUM en DNF commando’s. Wat ik wel ga doen is per Package Manager 1 pagina maken met een greep uit de reeks van mogelijke commando’s. Ik plaats deze in Alfabetische volgorde

Meer informatie kun je altijd terugvinden in de manpages of de infopages dit kan natuurlijk ook voor pakketbeheerders die niet opgenomen zijn in deze list (zoals pacman bijv.).