Hoofdstuk 4. De interface
Terug |  |

# Hoofdstuk 4. De interface

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.

## 4.1. Opstarten

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.

## 4.2. Het statusrapport

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.

### 4.2.1. De lijst met extra pakketten

    De volgende extra pakketten zullen geïnstalleerd worden:
    (The following extra packages will be installed:)
      libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl
      mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base
      bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy
      squake pgp-i python-base debmake ldso perl libreadlineg2
      ssh

De lijst met extra pakketten geeft alle pakketten weer die geïnstalleerd of opgewaardeerd zullen worden bovenop degene die aan de commandoregel opgegeven werden. Die lijst wordt enkel aangemaakt voor een `install` commando. De weergegeven pakketten zijn vaak het resultaat van een automatische installatie.

### 4.2.2. De te verwijderen pakketten

    De volgende pakketten zullen VERWIJDERD worden:
    (The following packages will be REMOVED:)
      xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix
      xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel
      xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid
      nas xpilot xfig

De lijst met te verwijderen pakketten geeft alle pakketten weer die van het systeem verwijderd zullen worden. Ze kan bij elk van de operaties getoond worden en zou zorgvuldig nagekeken moeten worden om zich ervan te vergewissen dat niets belangrijks weggenomen zal worden. Zeker de optie `-f` lokt vaak het verwijderen van pakketten uit en in dat geval is extra zorgvuldigheid zeker aangewezen. De lijst kan pakketten bevatten die verwijderd zullen worden omdat ze slechts ten dele geïnstalleerd werden, mogelijks ten gevolge van een afgebroken installatie.

### 4.2.3. De lijst nieuw te installeren pakketten

    De volgende NIEUWE pakketten zullen geïnstalleerd worden:
    (The following NEW packages will installed:)
      zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base

De lijst met nieuwe pakketten is enkel een geheugensteun voor wat er gaat gebeuren. De vermelde pakketten worden nu nog niet op het systeem geïnstalleerd, maar dat zal gebeuren als APT uitgevoerd wordt.

### 4.2.4. De lijst van tegengehouden pakketten

    De volgende pakketten werden tegengehouden
    (The following packages have been kept back)
      compface man-db tetex-base msql libpaper svgalib1
      gs snmp arena lynx xpat2 groff xscreensaver

Telkens het hele systeem opgewaardeerd wordt, bestaat de kans dat nieuwe versies van pakketten niet geïnstalleerd kunnen worden omdat ze nieuwe zaken vereisen of conflicteren met reeds geïnstalleerde zaken. In dat geval zal dat pakket vermeld worden in de lijst van tegengehouden pakketten. De beste manier om de daar vermelde pakketten te overtuigen om zich te laten installeren is `apt-get install` te gebruiken of dselect te gebruiken om hen een oplossing voor de problemen te laten vinden.

### 4.2.5. Waarschuwing over tegengehouden pakketten

    De volgende tegengehouden pakketten zullen gewijzigd worden:
    (The following held packages will be changed:)
      cvs

Soms kan het gebeuren dat u APT vraagt om een als tegengehouden gemarkeerd pakket te installeren. In dat geval geeft het een waarschuwing dat het tegengehouden pakket gewijzigd zal worden. Dit zou enkel mogen voorkomen bij een dist-upgrade of een install.

### 4.2.6. Afsluitende samenvatting

Tenslotte zal APT een samenvatting weergeven van alle wijzigingen die aangebracht zullen worden.

    206 pakketten opgewaardeerd, 8 nieuw geïnstalleerd, 23 te verwijderen en 51 niet opgewaardeerd.
    12 pakketten niet volledig geïnstalleerd of verwijderd.
    Moet 65.7M/66.7M archieven ophalen. Na uitpakken zal 26.5M gebruikt worden.

De eerste regel van de samenvatting is gewoon een beknopte versie van alle lijsten en bevat het aantal opwaarderingen - dat zijn reeds geïnstalleerde pakketten waarvoor nieuwere versies beschikbaar zin. De tweede regel toont het aantal slecht geconfigureerde pakketten, mogelijks het gevolg van een afgebroken installatie. De laatste regel toont de opslagruimte die door de installatie gebruikt zal worden. Het eerste paar getallen verwijst naar de grootte van de archiefbestanden. Het eerste getal geeft het aantal bytes op dat van externe locaties opgehaald moet worden en het tweede geeft de gezamenlijke omvang van alle benodigde archieven op. Het volgende getal geeft het verschil in grootte op tussen de actueel geïnstalleerde pakketten en de nieuwe situatie. Grofweg is dit vergelijkbaar met de benodigde ruimte in /usr nadat alles achter de rug is. Indien een groot aantal pakketten verwijderd wordt, kan de opgegeven waarde verwijzen naar de ruimte die vrij zal komen.

Door de optie -u te gebruiken kan men rapporten laten opmaken over de op te waarderen pakketten. Deze rapporten zijn vergelijkbaar met de vorige voorbeelden.

## 4.3. De statusweergave

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.

## 4.4. Dpkg

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.

Terug |  |
Hoofdstuk 3. DSelect | Begin |