Inhoudsopgave
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.
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.
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.
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.
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.
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.
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.
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.