pakketbeheersysteem

Introductie

De meeste moderne Unix-achtige besturingssystemen bieden een gecentraliseerd mechanisme voor het vinden en installeren van software. Software wordt meestal gedistribueerd in de vorm van pakketten, bewaard in repositories. Het werken met pakketten staat bekend als pakketbeheer. Pakketten bieden de kerncomponenten van een besturingssysteem, samen met gedeelde bibliotheken, applicaties, services en documentatie.

Een pakketbeheersysteem doet veel meer dan de eenmalige installatie van software. Het biedt ook hulpmiddelen voor het upgraden van reeds geïnstalleerde pakketten. Pakketrepository’s helpen ervoor te zorgen dat de code is doorgelicht voor gebruik op uw systeem en dat de geïnstalleerde versies van de software zijn goedgekeurd door ontwikkelaars en pakketbeheerders.

Bij het configureren van servers of ontwikkelomgevingen is het vaak nodig om verder te kijken dan officiële repositories. Pakketten in de stabiele release van een distributie kunnen verouderd zijn, vooral als het nieuwe of snel veranderende software betreft. Niettemin is pakketbeheer een essentiële vaardigheid voor systeembeheerders en ontwikkelaars, en de rijkdom aan pakketsoftware voor grote distributies is een enorme hulpbron.

Deze handleiding is bedoeld als een snelle referentie voor de grondbeginselen van het vinden, installeren en upgraden van pakketten op verschillende distributies, en zou u moeten helpen die kennis tussen systemen te vertalen.

Pakketbeheersystemen: een kort overzicht

De meeste pakketsystemen zijn opgebouwd rond verzamelingen pakketbestanden. Een pakketbestand is meestal een archief dat gecompileerde applicaties en andere bronnen bevat die door de software worden gebruikt, samen met installatiescripts. Pakketten bevatten ook waardevolle metagegevens, inclusief hun afhankelijkheden, een lijst met andere pakketten die nodig zijn om ze te installeren en uit te voeren.

Hoewel hun functionaliteit en voordelen grotendeels vergelijkbaar zijn, variëren de verpakkingsformaten en tools per platform:

  • Voor Debian/Ubuntu: .deb-pakketten geïnstalleerd door apt en dpkg
  • Voor Rocky / Fedora / RHEL: .rpm-pakketten geïnstalleerd door yum
  • Voor FreeBSD: .txz-pakketten geïnstalleerd door pkg

In Debian en systemen die daarop zijn gebaseerd, zoals Ubuntu, Linux Mint en Raspbian, is het pakketformaat het .deb-bestand. apt, de Advanced Packaging Tool, biedt opdrachten die voor de meest voorkomende bewerkingen worden gebruikt: het doorzoeken van opslagplaatsen, het installeren van verzamelingen pakketten en hun afhankelijkheden, en het beheren van upgrades. apt-opdrachten werken als een front-end voor het lager gelegen hulpprogramma dpkg, dat de installatie van individuele .deb-bestanden op het lokale systeem afhandelt, en soms rechtstreeks wordt aangeroepen.

Recente releases van de meeste van Debian afgeleide distributies bevatten één enkel apt-commando, dat een beknopte en uniforme interface biedt voor algemene bewerkingen die traditioneel werden afgehandeld door de meer specifieke apt-get en apt-cache.

Rocky Linux, Fedora en andere leden van de Red Hat-familie gebruiken RPM-bestanden. Deze gebruikten vroeger een pakketbeheerder genaamd yum. In recente versies van Fedora en zijn derivaten is yum vervangen door dnf, een gemoderniseerde fork die het grootste deel van de interface van yum behoudt.

Het binaire pakketsysteem van FreeBSD wordt beheerd met het pkg-commando. FreeBSD biedt ook de Ports Collection, een lokale mapstructuur en tools waarmee de gebruiker pakketten rechtstreeks van de broncode kan ophalen, compileren en installeren met Makefiles. Het is meestal veel handiger om pkg te gebruiken, maar af en toe is een vooraf gecompileerd pakket niet beschikbaar, of moet u mogelijk de compileeropties wijzigen.

Pakketlijsten bijwerken

De meeste systemen houden een lokale database bij van de pakketten die beschikbaar zijn in externe opslagplaatsen. Het is het beste om deze database bij te werken voordat u pakketten installeert of upgradet. Als gedeeltelijke uitzondering op dit patroon zal dnf controleren op updates voordat bepaalde bewerkingen worden uitgevoerd, maar u kunt op elk moment vragen of er updates beschikbaar zijn.

  • Voor Debian / Ubuntu: sudo apt-update
  • Voor Rocky / Fedora / RHEL: dnf-check-update
  • Voor FreeBSD-pakketten: sudo pkg update
  • Voor FreeBSD-poorten: sudo portsnap fetch update

Upgrade geïnstalleerde pakketten

Ervoor zorgen dat alle geïnstalleerde software op een machine up-to-date blijft, zou zonder een pakketsysteem een enorme onderneming zijn. U zou upstream-wijzigingen en beveiligingswaarschuwingen voor honderden verschillende pakketten moeten volgen. Hoewel een pakketbeheerder niet elk probleem oplost dat u tegenkomt bij het upgraden van software, kunt u hiermee wel de meeste systeemcomponenten onderhouden met een paar opdrachten.

Op FreeBSD kan het upgraden van geïnstalleerde poorten ingrijpende veranderingen introduceren of handmatige configuratiestappen vereisen. Het is het beste om /usr/ports/UPDATING te lezen voordat u een upgrade uitvoert met portmaster.

  • Voor Debian / Ubuntu: sudo apt-upgrade
  • Voor Rocky / Fedora / RHEL: sudo dnf-upgrade
  • Voor FreeBSD-pakketten: sudo pkg upgrade

Zoek een pakket

De meeste distributies bieden een grafische of menugestuurde front-end voor pakketcollecties. Dit kan een goede manier zijn om op categorie te bladeren en nieuwe software te ontdekken. Vaak is de snelste en meest effectieve manier om een pakket te vinden het zoeken met opdrachtregelprogramma’s.

  • Voor Debian/Ubuntu: apt search search_string
  • Voor Rocky / Fedora / RHEL: dnf search search_string
  • Voor FreeBSD-pakketten: pkg search search_string

Opmerking: Op Rocky, Fedora of RHEL kun je pakkettitels en -beschrijvingen samen zoeken door dnf search all te gebruiken. Op FreeBSD kunt u beschrijvingen doorzoeken met behulp van pkg search -D

Bekijk informatie over een specifiek pakket

Bij het beslissen wat u wilt installeren, is het vaak nuttig om gedetailleerde beschrijvingen van pakketten te lezen. Naast voor mensen leesbare tekst bevatten deze vaak metadata zoals versienummers en een lijst met de afhankelijkheden van het pakket.

  • Voor Debian / Ubuntu: apt show-pakket
  • Voor Rocky / Fedora / RHEL: dnf-infopakket
  • Voor FreeBSD-pakketten: pkg-infopakket
  • Voor FreeBSD-poorten: cd /usr/ports/category/port && cat pkg-descr

Installeer een pakket vanuit opslagplaatsen

Zodra u de naam van een pakket kent, kunt u het meestal met één enkele opdracht en de afhankelijkheden ervan installeren. Over het algemeen kunt u meerdere pakketten aanbieden om in één keer te installeren door ze allemaal op te sommen.

  • Voor Debian / Ubuntu: sudo apt install-pakket
  • Voor Rocky / Fedora / RHEL: sudo dnf installatiepakket
  • Voor FreeBSD-pakketten: sudo pkg-installatiepakket

Installeer een pakket vanaf het lokale bestandssysteem

Soms, ook al is software niet officieel verpakt voor een bepaald besturingssysteem, biedt een ontwikkelaar of leverancier pakketbestanden aan om te downloaden. U kunt deze meestal ophalen met uw webbrowser of via curl op de opdrachtregel. Zodra een pakket zich op het doelsysteem bevindt, kan het vaak met één enkele opdracht worden geïnstalleerd.

Op van Debian afgeleide systemen verwerkt dpkg individuele pakketbestanden. Als een pakket niet-vervulde afhankelijkheden heeft, kan gdebi vaak worden gebruikt om deze uit officiële opslagplaatsen op te halen.

Op Rocky Linux, Fedora of RHEL wordt dnf gebruikt om individuele bestanden te installeren, en zal ook de benodigde afhankelijkheden afhandelen.

  • Voor Debian/Ubuntu: sudo dpkg -i package.deb
  • Voor Rocky / Fedora / RHEL: sudo dnf install package.rpm
  • Voor FreeBSD-pakketten: sudo pkg add package.txz

Verwijder een of meer geïnstalleerde pakketten

Omdat een pakketbeheerder weet welke bestanden door een bepaald pakket worden geleverd, kan hij deze meestal netjes van een systeem verwijderen als de software niet langer nodig is.

  • Voor Debian / Ubuntu: sudo apt verwijder pakket
  • Voor Rocky / Fedora / RHEL: sudo dnf erase-pakket
  • Voor FreeBSD-pakketten: sudo pkg delete-pakket

Hulp krijgen

Houd er naast webgebaseerde documentatie rekening mee dat Unix-handleidingen (meestal manpagina’s genoemd) beschikbaar zijn voor de meeste opdrachten vanuit de shell. Gebruik man om een pagina te lezen:

man pagina

In man kun je navigeren met de pijltjestoetsen. Druk op / om naar tekst op de pagina te zoeken en op q om te stoppen.

  • Voor Debian/Ubuntu: man apt
  • Voor Rocky / Fedora / RHEL: man dnf
  • Voor FreeBSD-pakketten: man pkg of manports