Beheren van pakketten met dpkg!

Een lijst met alle geinstalleerde pakketten op je systeem, met hun status, roep je op met het volgende commando: dpkg --list. Elke regel corresponderend met een pakket start met drie kolommen die de status van het pakket weergeven. Hieronder links een ingekort voorbeeldje:

||/ Naam            Versie
+++-=================================
ii  acpi            1.4-2       
ii  acpi-support    0.136.1          
ii  acpid           1.0.10-5ubuntu2.5
ii  adduser         3.112ubuntu1

De éérste kolom identificiëert de status, gewenst door de gebruiker, en is gelimiteerd tot de 5 staten in het kader hieronder:

In de tweede kolom zie je de huidige staat. Hier bestaan 6 statussen voor. Bij een ernstig probleem met een pakket gebruikt dpkg-query hier een hoofdletter om dat aan te geven.

Laatst, een eventuele derde kolom, die mogelijke fouten aangeeft, bevat 4 staten. De eerste staat betekent: geen problemen en is niet gemarkeerd met een symbool. De drie andere symbolen geven problemen aan.

Het dpkg --list commando neemt ook standaard bestandsnaam patronen aan voor het verminderen van de output op je scherm. Je moet het bestandsnaam patroon escapen (\) of insluiten in quotes (aanhalingstekens). Hieronder zie je enkele voorbeelden:

dpkg --list \*firefox\*
dpkg --list ‘evolution‘

Men kan ook gebruik maken van dpkg-query, men kan daarmee weer te geven velden opgeven. Geeft men geen format mee, dan wordt de pakketnaam standaard weergegeven:

dpkg-query --show firefox
dpkg-query --show --showformat=‘${Package}\t${Status}\n‘ firefox

Pakketten die men normaal heeft verwijdert (de configuratie bestanden zijn op het systeem blijven staan), kan met alsnog opruimen met het volgend commando (alles op een regel):

# dpkg-query --show --showformat=‘${Status} ${Package}\n‘ \
| grep ^deinstall | cut -f4 | xargs dpkg -P

of purge alle pakketten die voorheen verwijderd zijn, dus nu de configuratie bestanden met:

# dpkg --list | grep ^rc | awk ‘{print $2}‘ | xargs dpkg -P

Er is zelfs nog een gemakkelijke manier om informatie op te vragen van een geïnstalleerd pakket:

dpkg --status firefox

De interne bestanden van een pakket opvragen:

dpkg --listfiles firefox

Wil men om een of andere reden een bepaald pakket in zijn huidige staat houden zodat dit niet meer automatisch wordt geupgraded, kan men dat als volgt. Een hold zetten voor een pakket:

Om de gewenste status (hold) te krijgen past men de tweede kolom aan. Men kan de lijst exporteren naar een tekstbestand met: dpkg --get-selections > firefox, pas het bestand naar wens aan en geef dat aangepaste bestand daarna door aan dpkg --set-selections < firefox of, je kan het gewenste resultaat via echo in dpkg --set-selections zetten (gemakkelijker), wat hieronder wordt getoond:

$ dpkg --list firefox
ii  firefox 14.0.1+build1-0ubuntu0.10 Safe and easy web browser from Mozilla
# echo firefox hold | dpkg --set-selections
# dpkg --list firefox
hi firefox 14.0.1+build1-0ubuntu0.10 Safe and easy web browser from Mozilla

Zoals je kan zien, staat in de eerste output tweemaal ii, en na deze aanpassing hi. Vanaf nu zal firefox dus niet meer automatisch worden geupgrade door je systeem, maar bij de huidige versie (14) blijven.

Pakketten volledig verwijderen (inclusief de config. bestanden) kan men zo doen:

$ dpkg --list firefox
ii firefox 14.0.1+build1-0ubuntu0.10 Safe and easy web browser from Mozilla
# dpkg --purge firefox
Purgin configuration files for firefox ...
$ dpkg --list firefox
pn firefox <none> (no description available)

Vergelijk de status van het pakket: pn wat betekent dat het pakket volledig is verwijdert (purged) en dat dpkg het pakket in de database heeft gemarkeerd als non-installed.

Voor het verwijderen van meerdere pakketten kan je, ook hier gebruik maken van de selections interface van dpkg, en de deinstallatie en purging verzoeken noteren vooraleer je dpkg opdraagt om die uit te voeren:

# echo firefox deinstall | dpkg --set-selections
# dpkg --remove --pending
... Removing firefox ...
# echo firefox purge | dpkg --set-selections
# dpkg --purge --pending
... Removing firefox
    Purging configuration files voor firefox ...

Terug naar Home