Hoofdstuk 4. De interface

Inhoudsopgave

4.1. Opstarten
4.2. Het statusrapport
4.3. De statusweergave
4.4. Dpkg

Zowel de dselect-methode van APT als apt-get maken gebruik van dezelfde interface. Het is een eenvoudig systeem dat u in het algemeen zegt wat het van plan is te doen en dan voor de uitvoering ervan gaat. [2] Nadat het een samenvatting gegeven heeft van wat er zal gebeuren, zal APT een aantal informatieve statusberichten weergeven, waardoor u kunt inschatten hoe ver het gevorderd is en hoeveel werk er nog te verrichten is.

Alvorens met een operatie te beginnen, behalve bij update, voert APT een aantal acties uit om zijn interne status klaar te maken. Het voert ook een aantal controles uit op de status van het systeem. Op om het even welk moment kunnen deze operaties uitgevoerd worden door het commando apt-get check uit te voeren.

# apt-get check
Pakketlijsten worden ingelezen... Klaar (Reading Package Lists... Done)
Boom van vereisten wordt opgebouwd... Klaar (Building Dependency Tree... Done)

Het eerste wat het doet is alle pakketbestanden in het geheugen laden. APT maakt gebruik van een bufferingsschema, waardoor de operatie sneller zal verlopen bij een tweede uitvoering. Indien sommige pakketbestanden niet gevonden worden, zullen ze overgeslagen worden en er zal een waarschuwing gegeven worden bij het afsluiten van apt-get.

De laatste operatie voert een gedetailleerde analyse uit van de vereistenboom op het systeem. Het voert een controle uit van elke vereiste van elk geïnstalleerd of uitgepakt pakket en gaat na of die OK is. Mocht daarbij een probleem ontdekt worden, dan zal een rapport weergegeven worden en apt-get zal de operatie niet voortzetten.

# apt-get check
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
U zou 'apt --fix-broken install' kunnen uitvoeren om dit te repareren.
Sorry, maar de volgende pakketten hebben niet-voldane vereisten:
  9fonts: Vereist: xlib6g maar dit is niet geïnstalleerd
  uucp: Vereist: mailx maar dit is niet geïnstalleerd
  blast: Vereist: xlib6g (>= 3.3-5) maar dit is niet geïnstalleerd
  adduser: Vereist: perl-base maar dit is niet geïnstalleerd
  aumix: Vereist: libgpmg1 maar dit is niet geïnstalleerd
  debiandoc-sgml: Vereist: sgml-base maar dit is niet geïnstalleerd
  bash-builtins: Vereist: bash (>= 2.01) maar 2.0-3 is geïnstalleerd
  cthugha: Vereist: svgalibg1 maar dit is niet geïnstalleerd
           Vereist: xlib6g (>= 3.3-5) maar dit is niet geïnstalleerd
  libreadlineg2: Conflicteert met:libreadline2 (<< 2.1-2.1)

Het systeem uit dit voorbeeld kampt met veel problemen, inclusief een ernstig probleem met libreadlineg2. Voor elk pakket met onvoldane vereisten wordt een regel weergegeven met een aanduiding van het pakket dat met het probleem geconfronteerd wordt en de vereisten waaraan niet voldaan zijn. Ook een korte verklaring waarom het pakket een vereistenprobleem heeft wordt toegevoegd.

Een systeem kan op twee manieren terechtkomen in een dergelijke defecte staat. Een eerste oorzaak kan dpkg zijn aan wie sommige subtiele onderlinge relaties tussen pakketten ontgaan zijn bij het uitvoeren van opwaarderingen. [3]. Een tweede oorzaak is het mislukken van de operatie in de loop van de installatie van een pakket. In een dergelijk geval kan een pakket uitgepakt zijn zonder dat zijn vereisten geïnstalleerd werden.

De tweede situatie is veel minder ernstig dan de eerste omdat APT sommige beperkingen instelt op de volgorde waarin pakketten geïnstalleerd worden. In beide gevallen zal het toevoegen van de optie -f aan het commando apt-get APT ertoe aanzetten om een mogelijke oplossing voor het probleem te zoeken en om dan voort te gaan. De dselect-methode van APT voegt steeds de optie -f toe om bij het mislukken van een script van de pakketonderhouder toch een vlotte voortgang te hebben.

Nochtans, als de optie -f gebruikt wordt voor het herstellen van een ernstig defect systeem ten gevolge van de eerste oorzaak, dan kan het gebeuren dat het commando ofwel onmiddellijk faalt of dat het in de loop van de installatiesequentie tot een mislukking komt. In beide gevallen zal het nodig zijn om manueel gebruik te maken van dpkg (wellicht met forceeropties) om de situatie in voldoende mate te corrigeren zodat APT in staat is voort te gaan.

Vooraleer het voortgaat zal apt-get een rapport tonen over wat er te gebeuren staat. In het algemeen geeft het rapport het type operatie weer dat uitgevoerd zal worden, maar dit bevat veel gemeenschappelijke elementen. In alle gevallen reflecteren de lijsten de eindstand van zaken, rekening houdend met de optie -f en alle andere mogelijke activiteiten die relevant zijn voor het uit te voeren commando.

Tijdens het downloaden van archieven en pakketbestanden geeft APT een aantal statusberichten weer.

# apt-get update
Ophalen:1 http://ftp.de.debian.org/debian-non-US/ stable/non-US/ Packages
Ophalen:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages
Geraakt http://llug.sep.bnl.gov/debian/ testing/main Packages
Ophalen:4 http://ftp.de.debian.org/debian-non-US/ unstable/binary-i386/ Packages
Ophalen:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages
11% [5 testing/non-free `Wachten op bestand' 0/32.1k 0%] 2203b/s 1m52s

Regels die beginnen met Ophalen worden weergegeven wanneer APT een bestand begint op te halen, terwijl de laatste regel de voortgang van de download aangeeft. Het eerste percentage op de voortgangsregel verwijst naar het totale percentage van alle bestanden samen dat afgewerkt is. Aangezien de grootte van de Packages-bestanden niet bekend is, maakt apt-get update een schatting van het reeds afgewerkte percentage, maar die is jammer genoeg in een zekere mate inaccuraat.

De volgende sectie van de statusregel wordt voor elke downloadtaak herhaald en geeft de operatie die uitgevoerd wordt weer evenals wat nuttige informatie over wat er aan het gebeuren is. Soms zal die sectie gewoon Forking bevatten, wat er op wijst dat het OS de downloadmodule aan het laden is. Het eerste woord na het [ is het volgnummer van de ophaaltaak zoals dat op de voortgangsregels getoond wordt. Het volgende woord is de verkorte vorm van de naam van het object dat opgehaald wordt. Als het archieven betreft, zal het de naam van het pakket dat opgehaald wordt bevatten.

Tussen de enkelvoudige aanhalingstekens staat een informatieve tekst die de voortgang weergeeft van de onderhandelingsfase van de download. Gewoonlijk evolueert dat van Aan het verbinden over Aan het wachten op bestand naar Aan het downloaden of Aan het hervatten. De laatste waarde geeft het aantal bytes weer dat opgehaald werd van de externe site. Als het proces van downloaden begonnen is, wordt dit weergegeven als 102/10.2k, hetgeen betekent dat er reeds 102 bytes opgehaald werden van een verwacht totaal van 10.2 kilobytes. De weergave van de volledige grootte wordt steeds getoond in een 4-cijfernotatie om plaats te sparen. Na de weergave van de grootte komt het reeds opgehaalde percentage van het bestand. Het voorlaatste element geeft de huidige gemiddelde snelheid op. Deze waarde wordt elke 5 seconden ververst en geeft de snelheid van de gegevensoverdracht voor die periode weer. Tenslotte wordt de verwachte duur van de gegevensoverdracht weergegeven. Dit wordt regelmatig ververst en weerspiegelt de tijd die nodig is om alles af te werken aan het getoonde tempo van gegevensoverdracht.

De statusweergave wordt iedere halve seconde ververst en geeft zo een constante feedback over het downloadproces terwijl de Ophalen-regels naar boven scrollen telkens er met een nieuw bestand wordt begonnen. Vermits de statusweergave permanent ververst wordt, is dit niet geschikt om in een logbestand opgeslagen te worden. Gebruik de optie -q om de statusweergave te onderdrukken.

APT gebruikt dpkg om de archieven te installeren en schakelt na het voltooien van het downloaden over op de interface dpkg. Tijdens het verwerken van de pakketten zal dpkg een aantal vragen stellen en ook de pakketten zelf kunnen verschillende vragen stellen. Aan elke vraag gaat er gewoonlijk een beschrijving vooraf van waarover de vraag gaat. De vragen zijn dermate gevarieerd dat het niet mogelijk is om ze hier volledig te behandelen.



[2] De dselect-methode is eigenlijk een geheel van scripts die rondom apt-get gebouwd werden. De methode biedt eigenlijk meer functionaliteit dan aanwezig is in apt-get alleen.

[3] APT neemt evenwel alle gekende vereisten in overweging en probeert het ontstaan van defecte pakketten te voorkomen.