Hoofdstuk 1. Algemeen

Inhoudsopgave

1.1. Anatomie van het pakketsysteem

Momenteel bevat het APT-pakket twee secties, de dselect-methode van APT en het commandoregelprogramma apt-get. Beide bieden een manier om pakketten te installeren en te verwijderen en nieuwe pakketten via het internet op te halen.

Het pakketsysteem van Debian maakt gebruik van een grote hoeveelheid aan informatie over elk pakket om te helpen verzekeren dat het eenvoudig en netjes in het systeem ingepast kan worden. Het meest prominente aspect van zijn functionaliteit is het vereistensysteem.

Het vereistensysteem laat individuele programma's toe om gebruik te maken van gemeenschappelijke elementen uit het systeem, zoals bibliotheken. Het vereenvoudigt het onderbrengen van weinig gebruikte aspecten van een programma in aparte pakketten om het aantal zaken dat een gewone gebruiker moet installeren, te beperken. Het laat ook toe te kiezen uit verschillende mailservers (mail transport agents), X-servers, enz.

Een eerste stap in het begrijpen van het vereistensysteem is het concept van een eenvoudige vereiste vatten. Een eenvoudige vereiste houdt in dat een pakket om behoorlijk te kunnen functioneren, vereist dat een ander pakket gelijktijdig geïnstalleerd wordt.

Bijvoorbeeld, mailcrypt is een emacs-uitbreiding die helpt bij het versleutelen van e-mail met GPG. Zonder dat GPG geïnstalleerd is, is mailcrypt nutteloos. Dus is mailcrypt afhankelijk van GPG (en is GPG een vereiste voor mailcrypt). Omdat mailcrypt een uitbreiding van emacs is, is het bovendien ook daarvan afhankelijk. Zonder emacs is het gewoon onbruikbaar.

Een andere belangrijke afhankelijkheid die u goed moet begrijpen is een conflicterende afhankelijkheid. Dit houdt in dat een pakket, mocht het tegelijk met een ander pakket geïnstalleerd zijn, niet zal werken en misschien zelfs heel schadelijk voor het systeem kan zijn. Neem bijvoorbeeld een mail transport agent (mailserver) zoals sendmail, exim of qmail. Het is niet mogelijk om er twee van te installeren, omdat ze allemaal op het netwerk moeten luisteren om mail te ontvangen. Mocht men er toch twee proberen te installeren, dan zou het systeem ernstig beschadigd raken en om die reden hebben alle mail transport agents een conflictafhankelijkheid tegenover alle andere mail transport agents.

Een bijkomende complicatie is dat de mogelijkheid bestaat dat een pakket zich als een ander pakket voordoet. Bedenk dat exim en sendmail voor vele doeleinden identiek zijn: allebei bezorgen ze e-mail en allebei kunnen ze overweg met een gemeenschappelijke interface. Daarom voorziet het pakketsysteem voor hen in de mogelijkheid om te verklaren dat ze allebei mail-transport-agents zijn. Dus verklaren exim en sendmail allebei dat ze een mail-transport-agent aanbieden. En andere pakketten die een mail transport agent nodig hebben, hebben mail-transport-agent als vereiste. Bij het manueel proberen repareren van pakketten kan dit tot heel wat verwarring leiden.

Aan een eenvoudige vereiste kan op elk moment al dan niet voldaan worden door pakketten die reeds geïnstalleerd zijn. APT probeert te helpen bij het oplossen van vereistenproblemen door een aantal automatische algoritmes aan te bieden die helpen bij het selecteren van te installeren pakketten.