Inhoudsopgave
Er bestaan verschillende gereedschappen die gebruikt worden voor het beheer van Debian-pakketten, gaande van grafische of tekstgebaseerde interfaces tot eenvoudig basisgereedschap voor het installeren van pakketten. Alle beschikbaar gereedschappen steunen op de basisgereedschappen om correct te functioneren en worden hier voorgesteld volgens aflopend complexiteitsniveau.
Het is belangrijk te weten dat de hogere gereedschappen voor pakketbeheer, zoals aptitude en synaptic, voor het beheren van de pakketten op het systeem steunen op apt dat zelf steunt op dpkg.
Zie Hoofdstuk 2. Pakketbeheer in Debian van het Referentiehandboek van Debian voor meer informatie over de hulpprogramma's voor pakketbeheer van Debian. Dit document is beschikbaar in verschillende talen en formaten, ziehet item over het Referentiehandboek van Debian in de overzichtspagina van gebruikershandleidingen van het Documentatieproject van Debian.
Dit is het belangrijkste programma voor pakketbeheer. dpkg kan met verschillende opties uitgevoerd worden. Enkele vaak voorkomende toepassingen zijn:
Een overzicht vragen van alle opties: dpkg --help
.
Het control-bestand (en andere informatie) afdrukken van een opgegeven
pakket: dpkg --info foo_VVV-RRR.deb
.
Een pakket installeren (met inbegrip van uitpakken en configureren) op het
bestandssysteem van de harde schijf: dpkg --install
foo_VVV-RRR.deb
.
Een Debian-archief uitpakken (maar niet configureren) op het bestandssysteem
van de harde schijf: dpkg --unpack foo_VVV-RRR.deb
. Merk
op dat deze bewerking het pakket niet noodzakelijk in
een bruikbare toestand achterlaat. Mogelijk moeten sommige bestanden verder
aangepast worden om behoorlijk te functioneren. Dit commando verwijdert een
eventueel reeds geïnstalleerde versie van het programma en voert het
preinst-script (zie Paragraaf 7.6, “Wat is een Debian preinst, postinst, prerm, en postrm script?”) uit dat bij het pakket
hoort.
Een pakket dat reeds uitgepakt werd, configureren: dpkg --configure
foo
. Naast andere bewerkingen voert deze actie het postinst-script
(zie Paragraaf 7.6, “Wat is een Debian preinst, postinst, prerm, en postrm script?”) uit dat bij het pakket hoort. Ze werkt
ook de bestanden bij die vermeld worden in het bestand
conffiles
dat bij het pakket hoort. Merk op dat de
bewerking 'configure' als argument de naam van een pakket (bijv. foo) nodig
heeft en niet de naam van een archiefbestand van Debian
(bijv. foo_VVV-RRR.deb).
Een enkel bestand met de naam "blurf" (of een groep bestanden met de naam
"blurf*") extraheren uit een Debian-archief: dpkg --fsys-tarfile
foo_VVV-RRR.deb | tar -xf - 'blurf*'
.
Een pakket verwijderen (maar niet zijn configuratiebestanden): dpkg
--remove foo
.
Een pakket verwijderen (met inbegrip van zijn configuratiebestanden):
dpkg --purge foo
.
De installatietoestand weergeven van pakketten die de tekenreeks (of de
reguliere expressie) "foo*" bevatten: dpkg --list 'foo*'
.
APT is het Advanced Package Tool (geavanceerd
pakketgereedschap), een geavanceerde interface met het pakketsysteem van
Debian, die voorziet in het programma apt-get. Het biedt
hulpmiddelen voor de commandoregel die dienen voor het opzoeken en beheren
van pakketten en voor het opzoeken van informatie over hen, evenals
basistoegang tot alle functionaliteit van de bibliotheek
libapt-pkg. Raadpleeg voor bijkomende informatie de gebruikershandleiding in
/usr/share/doc/apt-doc/guide.html/index.html
(daarvoor
moet u het pakket apt-doc
installeren).
Sinds Debian Jessie kregen sommige vaak gebruikte apt-get- en apt-cache-commando's een equivalent via het nieuwe programma apt. Dit houdt in dat sommige populaire commando's zoals apt-get update, apt-get install, apt-get remove, apt-cache search en apt-cache show nu ook gewoon via apt gebruikt kunnen worden, zoals apt update, apt install, apt remove, apt search, en apt show. Hierna volgt een overzicht van de oude en de nieuwe commando's:
apt-get update -> apt update apt-get upgrade -> apt upgrade apt-get dist-upgrade -> apt full-upgrade apt-get install pakket -> apt install pakket apt-get remove pakket -> apt remove pakket apt-get autoremove -> apt autoremove apt-cache search tekst -> apt search tekst apt-cache policy pakket -> apt list -a pakket apt-cache show pakket -> apt show pakket apt-cache showpkg pakket -> apt show -a pakket
Het hulpprogramma apt voegt functionaliteit van apt-get en apt-cache samen en heeft standaard een leukere en gekleurde uitvoer, wat het voor mensen aangenamer maakt. Voor het gebruik in scripts en voor meer gevorderde toepassingen is apt-get nog steeds te verkiezen of vereist.
apt-get biedt een eenvoudige manier om aan de
commandoregel pakketten uit verschillende pakketbronnen op te halen en te
installeren. Anders dan dpkg heeft
apt-get geen kennis over .deb-bestanden. Het werkt met de
echte namen van de pakketten en kan enkel .deb-archieven installeren uit een
pakketbron die in /etc/apt/sources.list
vermeld
staat. apt-get zal dpkg aanroepen
onmiddellijk na het downloaden van de .deb-archieven uit de geconfigureerde
pakketbronnen.
Enkele veel voorkomende toepassingen van apt-get zijn:
Om de lijst van de door uw systeem gekende pakketten bij te werken, gebruikt u het commando:
apt update
(u moet dit regelmatig gebruiken om uw pakketlijsten bij te werken)
Om het pakket foo
en al zijn vereisten te
installeren, gebruikt u het commando:
apt install foo
Om het pakket foo van uw systeem te verwijderen, gebruikt u het commando:
apt remove foo
Om het pakket foor en de configuratiebestanden ervan van uw systeem te verwijderen, gebruikt u het commando:
apt purge foo
Om alle pakketten te toen waarvoor een nieuwere versie beschikbaar is, gebruikt u het comando:
apt list --upgradable
Om alle pakketten op uw systeem op te waarderen (zonder extra pakketten te installeren of pakketten te verwijderen), gebruikt u het commando:
apt upgrade
Om alle pakketten op uw systeem op te waarderen en, als dat nodig is voor het opwaarderen van een pakket, extra pakketten te installeren of pakketten te verwijderen, gebruikt u het commando:
apt full-upgrade
(Het commando upgrade
behoudt een pakket op zijn
geïnstalleerde verouderde versie als voor de opwaardering ervan de
installatie van een bijkomend pakket nodig is om op die manier te voldoen
aan een nieuwe vereiste. Het commando full-upgrade
is
minder conservatief.)
Merk op dat u als root (systeembeheerder) aangemeld dient te zijn om elk commando uit te voeren dat pakketten wijzigt.
Merk op dat apt-get nu ook standaard aanbevolen pakketten installeert. Omwille van zijn robuustheid is het ook het aanbevolen programma voor pakketbeheer aan de console bij het uitvoeren van de installatie van een systeem en van belangrijke opwaarderingen van het systeem.
De gereedschapssuite apt bevat ook het hulpprogramma apt-cache voor het doorzoeken van de pakketlijsten. U kunt het gebruiken om pakketten te zoeken die een specifieke functionaliteit bieden via een eenvoudige zoekopdracht met tekst of een reguliere expressie en via het doorzoeken van vereisten in het pakketbeheersysteem. Enkele gebruikelijke toepassingen van apt-cache zijn:
Alle pakketten vinden waarvan de beschrijving
woord
bevat:
apt search woord
Gedetailleerde informatie over een pakket weergeven:
apt show pakket
Weergeven welke pakketten een bepaald pakket vereist:
apt-cache depends pakket
Gedetailleerde informatie weergeven over de beschikbare versies van een pakket en over de pakketten die het als vereiste hebben (reverse-dependency)
apt-cache showpkg pakket
Installeer het pakket apt
voor
bijkomende informatie en lees
apt(8),
apt-get(8),
sources.list(5)
en installeer ook het pakket apt-doc
en lees /usr/share/doc/apt-doc/guide.html/index.html
.
aptitude is een pakketbeheerprogramma voor Debian GNU/Linux-systemen dat een frontend biedt voor de pakketbeheerinfrastructuur van apt. aptitude is een op tekst gebaseerde interface die gebruik maakt van de curses-bibliotheek. Acties kunnen uitgevoerd worden in de visuele interface of aan de commandoregel.
aptitude kan gebruikt worden om beheertaken op een snelle en gemakkelijke manier uit te voeren. Het laat de gebruiker toe de pakketlijst te bekijken en pakketbeheertaken, zoals het installeren, opwaarderen en verwijderen van pakketten, uit te voeren.
aptitude biedt de functionaliteit van apt-get en heeft veel bijkomende functies:
aptitude biedt een gemakkelijke toegang tot alle versies van een pakket.
aptitude maakt het gemakkelijk om bij te houden welke software verouderd is door deze te vermelden onder "Verouderde en lokaal aangemaakte pakketten".
aptitude bevat een behoorlijk krachtig systeem voor het zoeken van een specifiek pakket en voor het instellen van beperkingen voor de weergave van pakketten. Gebruikers die met mutt vertrouwd zijn, zullen dit snel oppikken, vermits mutt de inspiratiebron vormde voor de gebruikte expressie-syntaxis.
aptitude kan gebruikt worden voor het installeren van de beschikbare voorgedefinieerde taken. Zie voor meer informatie Paragraaf 8.1.5, “tasksel”.
In de modus 'volledig scherm' beschikt aptitude over ingebouwde su-functionaliteit en kan het uitgevoerd worden door een gewone gebruiker. Het zal su aanroepen (en desgevallend om het wachtwoord van root vragen) indien u echt systeembeheerrechten nodig heeft.
U kunt aptitude via een visuele interface gebruiken (geef
gewoon de opdtacht aptitude
) of rechtstreeks aan de
commandoregel. De gebruikte syntaxis aan de commandoregel is erg
gelijkaardig aan die voor apt-get. Bijvoorbeeld, om het
pakket foo
te installeren kunt u de opdracht
aptitude install
gebruiken.
foo
Meer op dat aptitude het programma is dat u bij voorkeur gebruikt voor het dagelijkse pakketbeheer aan de console.
Voor bijkomende informatie kunt u de man-pagina
aptitude(8)
lezen en het pakket aptitude-doc
installeren.
synaptic is een grafische pakketbeheerder. Het laat u toe softwarepakketten te installeren, op te waarderen en te verwijderen op een gebruikersvriendelijke manier. Naast de meeste functies die ook door aptitude geboden worden, biedt het ook een functie voor het bewerken van de lijst van gebruikte pakketbronnen en ondersteunt het het doorbladeren van alle beschikbare informatie over een pakket. Zie de Website van Synaptic voor bijkomende informatie.
Indien u een specifieke taak wenst uit te voeren, kan het moeilijk zijn om
het passende geheel van pakketten te vinden dat aan uw behoeften
beantwoordt. De ontwikkelaars van Debian hebben daarom
tasks
(taken) gedefinieerd. Een 'task' is een verzameling
van verschillende individuele Debian-pakketten die alle verband houden met
een specifieke activiteit. Het installeren van 'tasks' kan uitgevoerd worden
met het programma tasksel of met
aptitude.
Gewoonlijk zal het installatiesysteem van Debian automatisch de taak
installeren voor een standaardsysteem en een desktopomgeving. Welke
specifieke desktopomgeving geïnstalleerd wordt, hangt af van de gebruikte
CD/DVD-media. Het meest gebruikelijk is de desktop van GNOME (taak
gnome-desktop
). Ook kunnen er op basis van uw keuzes
tijdens het installatieproces nog andere taken automatisch geïnstalleerd
worden op uw systeem. Bijvoorbeeld, indien u een andere taal dan het Engels
selecteerde, zal ook de ermee verband houdende taak automatisch
geïnstalleerd worden.
Dit programma voert bewerkingen uit op Debian-archiefbestanden
(.deb
). Enkele courante toepassingen zijn:
Alle mogelijke opties opvragen: dpkg-deb --help
.
Vaststellen welke bestanden een Debian-archiefbestand bevat:
dpkg-deb --contents foo_VVV-RRR.deb
De bestanden uit een opgegeven Debian-archief uitpakken naar een door de
gebruiker opgegeven map: dpkg-deb --extract foo_VVV-RRR.deb
tmp
. Dit commando extraheert alle bestanden uit
foo_VVV-RRR.deb
en plaatst ze in de map
tmp/
. Dit is een handige manier om de inhoud van een
pakket te onderzoeken in een welbepaalde map, zonder het pakket te
installeren op het basisbestandssysteem.
De bestanden met controle-informatie extraheren uit een pakket:
dpkg-deb --control foo_VVV-RRR.deb tmp
.
Merk op dat pakketten die louter met dpkg-deb --extract
uitgepakt werden, niet correct geïnstalleerd zullen zijn. U moet in de
plaats daarvan dpkg --install
gebruiken.
Meer informatie wordt verstrekt in de man-pagina dpkg-deb(1).
De kernel (het bestandssysteem) van Debian GNU/Linux-systemen ondersteunt het vervangen van bestanden, zelfs als ze in gebruik zijn.
We voorzien ook in een programma dat start-stop-daemon heet en dat gebruikt wordt om 'daemons' op te starten bij het opstarten van de computer of ze te stoppen als het 'runlevel' verandert (als bijvoorbeeld overgeschakeld wordt van meerdere-gebruikersmodus naar één-gebruikersmodus of naar halt). Hetzelfde programma wordt gebruikt door installatiescripts wanneer een nieuw pakket met een daemon geïnstalleerd wordt en dit om actieve daemons te stoppen en ze nadien, indien nodig, te herstarten.
Om de toestand te kennen van alle pakketten die op een Debian-systeem geïnstalleerd zijn, moet u het volgende commando uitvoeren:
dpkg --list
Dit produceert een samenvatting van één regel per pakket met een uit twee letters bestaand symbool dat de toestand weergeeft (toegelicht in de kopregel), de naam van het pakket, de geïnstalleerde versie en een korte beschrijving.
Om de toestand te kennen van pakketten waarvan het begin van de naam bestaat uit "foor", gebruikt u het commando:
dpkg --list 'foo*'
Om over een specifiek pakket een meer uitgebreid rapport op te vragen, geeft u de opdracht:
dpkg --status pakketnaam
Om alle bestanden weer te geven waarin door het geïnstalleerde pakket
foo
, gebruikt u het commando
dpkg --listfiles foo
Merk op dat de bestanden die aangemaakt worden door de installatiescripts niet weergegeven worden.
Om het pakket dat het bestand met de naam foo
produceerde, te kennen, geeft u ofwel de volgende opdracht:
dpkg --search foo
Dit zoekt foo
op in geïnstalleerde pakketten. (Dit komt
(momenteel) overeen met het doorzoeken van alle bestanden met de extensie
.list
in de map /var/lib/dpkg/info/
,
waarna de namen weergegeven worden van alle pakketten die het bestand en
afgeleiden bevat.)
Een sneller alternatief hiervoor is het gereedschap dlocate.
dlocate -S foo
zgrep foo Contents-ARCH.gz
Dit zoekt naar bestanden die de tekenreeks foo
hebben in
de naam van hun volledig pad. De bestanden
Contents-ARCH.gz
(waarbij ARCH staat voor de gewenste
architectuur) staan in de hoofdpakketmappen (main, non-free, contrib) op een
Debian archievensite (dit is onder
/debian/dists/bookworm
). Een
Contents
-bestand bevat enkel verwijzingen naar de
pakketten die zich bevinden in zijn onderliggende mappenboom. Daardoor kan
het zijn dat een gebruiker meer dan een Contents
-bestand
moet doorzoeken om het pakket te vinden dat het bestand
foo
bevat.
Tegenover dpkg --search
heeft deze werkwijze het voordeel
dat het bestanden kan vinden in pakketten die momenteel niet geïnstalleerd
zijn op uw systeem.
apt-file search
foo
Indien u het pakket apt-file
geïnstalleerd heeft, zoekt dit commando net zoals in het voorgaande
voorbeeld naar bestanden die de tekenreeks of de reguliere expressie
foo
hebben in de naam van hun volledig pad. Het voordeel
tegenover het voorgaande voorbeeld is dat de
Contents-ARCH.gz
-bestanden niet moeten opgehaald worden,
vermits het dit automatisch doet voor alle pakketbronnen die in
/etc/apt/sources.list
staan als u (als gebruiker root)
de opdracht apt-file update
geeft.
Sommige pakketten werden opgesplitst in een programma-pakket ('foo') en een data-pakket (foo-data') (of in 'foo' en 'foo-doc'). Dit is het geval voor veel spellen, multimediatoepassingen en woordenboeken in Debian, omdat sommige gebruikers de ruwe data willen gebruiken zonder het programma te installeren, of omdat het programma gebruikt kan worden zonder de data zelf, hetgeen maakt dat 'foo-data' optioneel is.
Gelijkaardige situaties doen zich met bibliotheken voor: over het algemeen worden ze geïnstalleerd omdat pakketten van toepassingen ze vereisen. Als het pakket met de toepassing gewist wordt, blijft het bibliotheek-pakket mogelijk op het systeem. Welnu, als het pakket met de toepassing niet langer bijvoorbeeld libdb4.2 vereist, maar libdb4.3, kan het pakket libdb4.2 achterblijven op het systeem als hete pakket met de toepassing opgewaardeerd wordt.
In deze gevallen is 'foo-data' niet afhankelijk van 'foo' en als u dus het pakket 'foo' verwijdert, zal het door de meeste pakketbeheergereedschappen niet automatisch verwijderd worden. Hetzelfde is het geval voor de bibliotheekpakketten. Dit is nodig om circulaire vereisten te vermijden. Indien u echter apt-get (zie Paragraaf 8.1.2, “APT”) of aptitude (zie Paragraaf 8.1.3, “aptitude”) gebruikt als pakketbeheergereedschap, zullen deze automatisch geïnstalleerde pakketten opvolgen en de mogelijkheid bieden om ze te verwijderen als er op uw systeem geen pakketten meer overblijven die er gebruik van maken.