Ubuntu-pakketbeheer: APT en dpkg CheatSheet

Essentiële APT- en dpkg-commands voor Ubuntu-pakketten

Het pakketbeheersysteem van Ubuntu is de kern van softwareinstallatie en onderhoud, waardoor het essentieel is voor elke Linux-gebruiker of systeembeheerder.

tetris Deze afbeelding is gegenereerd door AI model Flux 1 dev.

Wat is APT-pakketbeheer?

APT (Advanced Package Tool) is het primaire pakketbeheersysteem van Ubuntu, geërfd van Debian. Het is een krachtig commandoregelprogramma voor het installeren, updaten en verwijderen van softwarepakketten. APT lost automatisch afhankelijkheden op, verbindt met de officiële Ubuntu-repositories en is de traditionele methode voor het beheren van systeempakketten op Ubuntu en Debian-gebaseerde distributies. Als je nieuw bent op Ubuntu, raadpleeg dan onze gids over hoe je Ubuntu 24.04 installeert en nuttige tools om te beginnen met een goed geconfigureerd systeem.

Belangrijke kenmerken:

  • Ingebouwd in Ubuntu/Debian: Ingebouwd, geen extra installatie vereist
  • Gedeelde bibliotheken: Efficiënt gebruik van schijfruimte via gedeelde systeemafhankelijkheden
  • Handmatige updates: Je beheerst wanneer pakketten worden bijgewerkt
  • Geen sandboxing: Pakketten hebben volledige systeemtoegang (geschikt voor systeemtools)
  • Lichtgewicht: Geen achtergronddaemon, draait alleen wanneer aangeroepen
  • Volwassen ecosysteem: Decennia van ontwikkeling, extreem stabiel

Pakketbeheer vergelijking

Ubuntu ondersteunt meerdere pakketbeheersystemen. Hieronder vind je hoe de belangrijkste bewerkingen vergelijken:

Bewerking APT Snap Flatpak
Zoeken apt search keyword snap find keyword flatpak search keyword
Installeren sudo apt install package sudo snap install package flatpak install flathub app.id
Lijst met geïnstalleerde pakketten apt list --installed snap list flatpak list --app
Informatie tonen apt show package snap info package flatpak info app.id
Alle bijwerken sudo apt update && sudo apt upgrade sudo snap refresh flatpak update
Eén bijwerken sudo apt install --only-upgrade pkg sudo snap refresh package flatpak update app.id
Verwijderen sudo apt remove package sudo snap remove package flatpak uninstall app.id
Opschonen sudo apt autoremove snap remove --revision=N flatpak uninstall --unused
Repository /etc/apt/sources.list Snap Store (ingebouwd) Voeg toe met flatpak remote-add

Snel kenmerkenoverzicht

Kenmerk APT Snap Flatpak
Automatische updates Nee Ja Nee
Sandboxing Nee Ja Ja
Afhankelijkheden Systeembibliotheken Gebundeld Gedeelde runtime
Pakketgrootte Klein (5-50MB) Groot (50-500MB) Gemiddeld (20-200MB)
Root vereist Ja Ja Nee (gebruikersinstallatie)
Startsnelheid Snel Langzamer Snel
Beste voor Systeempakketten Universele apps Desktopapps

Over deze gids

Deze gids richt zich op APT (apt/apt-get/dpkg) - het traditionele pakketbeheersysteem van Ubuntu. APT is essentieel voor het beheren van systeempakketten, bibliotheken en services op Ubuntu en Debian-gebaseerde systemen.

Voor andere pakketbeheersystemen:

Elk pakketbeheersysteem heeft zijn eigen sterktes. Gebruik APT voor systeempakketten en afhankelijkheden, Snap voor cross-versie compatibiliteit en automatische updates, en Flatpak voor desktopapplicaties met fijngevoelige toegang.


APT-pakketbeheer - Gedetailleerde gids

Begrijpen van APT versus apt-get

APT (apt) - Moderne keuze

Ingevoerd in Ubuntu 14.04, combineert apt functies van apt-get en apt-cache met een verbeterde gebruikerservaring:

Voordelen:

  • Vooruitgangsbalken en gekleurde uitvoer
  • Intuïtieve opdrachten
  • Leesbaardere uitvoer voor mensen
  • Combineert meerdere toolfunctionaliteit

Wanneer gebruiken: Dagelijks interactieve commandoregelbewerkingen

apt-get - Traditionele keuze

Het originele pakketbeheerprogramma, nog steeds veel gebruikt:

Voordelen:

  • Stabielere API (beter voor scripts)
  • Ondersteuning voor oude systemen
  • Voorspelbare uitvoerindeling
  • Fijnere controle

Wanneer gebruiken: Shellscripts, automatisering, legacy-systemen

Pro Tip: Voor snellere terminalnavigatie en werkstroomefficiëntie, raadpleeg onze Ubuntu toetsenbordkortingen gids om je productiviteit te verhogen terwijl je pakketten beheert.

Essentiële pakketbeheeropdrachten

Pakketlijsten bijwerken

Bijwerken van pakketlijsten altijd voordat je installeert of bijwerkt:

# Pakketindex bijwerken
sudo apt update

# Of met apt-get
sudo apt-get update

Deze opdracht vernieuwt de lokale database met informatie over beschikbare pakketten en hun versies van geconfigureerde repositories.

Pakketten installeren

Basisinstallatie:

# Een enkel pakket installeren
sudo apt install package-name

# Meerdere pakketten installeren
sudo apt install package1 package2 package3

# Specifieke versie installeren
sudo apt install package-name=version-number

Voorbeelden:

# Nginx webserver installeren
sudo apt install nginx

# Python en pip installeren
sudo apt install python3 python3-pip

# Build essentials installeren
sudo apt install build-essential

# Systeemonitoringstools installeren
sudo apt install htop

Voor gespecialiseerde monitoringbehoeften, zoals het volgen van GPU-prestaties op systemen met NVIDIA-kaarten, raadpleeg onze gids over GPU-monitoringapplicaties in Linux/Ubuntu.

Installeer zonder prompts (handig voor scripts):

sudo apt install -y package-name

# Of
sudo DEBIAN_FRONTEND=noninteractive apt install -y package-name

Installeer vanuit .deb-bestand:

# Methode 1: Gebruik apt (aangeraden, verwerkt afhankelijkheden)
sudo apt install ./package.deb

# Methode 2: Gebruik dpkg
sudo dpkg -i package.deb
sudo apt install -f  # Fix ontbrekende afhankelijkheden

Opmerking: Bij het werken met gedownloade .deb-bestanden, wil je mogelijk een bestandsbeheerder met een goede contextmenu gebruiken. Bekijk onze vergelijking van bestandsbeheerders voor Ubuntu 24.04 (Nautilus vs Nemo vs Dolphin vs Caja) om er één te vinden die bij je werkstroom past.

Pakketten bijwerken

Bijwerken van geïnstalleerde pakketten:

# Alle pakketten bijwerken (veilig, verwijdert geen pakketten)
sudo apt upgrade

# Specifiek pakket bijwerken
sudo apt install --only-upgrade package-name

# Volledige bijwerking (kan pakketten verwijderen om afhankelijkheden op te lossen)
sudo apt full-upgrade

# Distributiebijwerking (voor grote versie-updates)
sudo apt dist-upgrade

Volledige bijwerkbewerking:

# Aanbevolen bijwerkbewerking
sudo apt update
sudo apt upgrade -y
sudo apt autoremove
sudo apt autoclean

Ubuntu-versie bijwerken:

# Voor LTS naar volgende LTS
sudo do-release-upgrade

# Voor elke versie-upgrade
sudo do-release-upgrade -d

Lijsten met pakketten

Lijst met geïnstalleerde pakketten:

# Alle geïnstalleerde pakketten
apt list --installed

# Met grep-filter
apt list --installed | grep package-name

# Aantal geïnstalleerde pakketten
apt list --installed | wc -l

# Gebruik dpkg
dpkg -l
dpkg --list
dpkg -l | grep package-name

Lijst met bij te werken pakketten:

# Pakketten met beschikbare updates tonen
apt list --upgradable

# Gedetailleerde upgrade simulatie
apt list --upgradable -a

Lijst met alle beschikbare pakketten:

# Alle pakketten in repositories
apt list

# Lijst van specifieke repository
apt list | grep "source-name"

Zoeken naar pakketten

Zoek pakketnamen en beschrijvingen:

# Zoek met apt
apt search keyword

# Niet-gevoelige zoekopdracht
apt search -i keyword

# Alleen pakketnamen tonen
apt-cache search keyword

# Alleen pakketnamen zoeken (snel)
apt-cache search --names-only keyword

Voorbeelden:

# Zoek naar editor
apt search text editor

# Zoek naar database
apt search database

# Zoek naar Python-pakketten
apt search python | grep python3

Pakketinformatie bekijken

Gedetailleerde pakketinformatie:

# Pakketdetails tonen
apt show package-name

# Gebruik apt-cache
apt-cache show package-name

# Pakketafhankelijkheden tonen
apt-cache depends package-name

# Omgekeerde afhankelijkheden tonen
apt-cache rdepends package-name

# Pakketbeleid en versies controleren
apt-cache policy package-name

# Pakketstatistieken tonen
apt-cache stats

Controleer of pakket geïnstalleerd is:

# Methode 1
dpkg -s package-name

# Methode 2
dpkg -l package-name

# Methode 3
apt list --installed package-name

# Methode 4 (uitvoercode 0 als geïnstalleerd)
dpkg-query -W package-name

Pakketten verwijderen

Verwijder pakketten:

# Pakket verwijderen (configuratiebestanden behouden)
sudo apt remove package-name

# Pakket en configuratiebestanden verwijderen (verwijderen)
sudo apt purge package-name

# Verwijder met afhankelijkheden
sudo apt autoremove package-name

# Pakket en configuraties volledig verwijderen
sudo apt purge package-name && sudo apt autoremove

Systeem opschonen:

# Ongebruikte afhankelijkheden verwijderen
sudo apt autoremove

# Met verwijderen
sudo apt autoremove --purge

# Gedownloade pakketbestanden verwijderen
sudo apt clean

# Oude versies van pakketten verwijderen
sudo apt autoclean

Schijfruimte gebruiken controleren:

# Cache grootte controleren
du -sh /var/cache/apt/archives

# Totale pakketgrootte controleren
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

Pakketbeperkingen (Upgrade voorkomen)

Pakketten beperken:

# Pakket op huidige versie beperken
sudo apt-mark hold package-name

# Pakket onbeperken
sudo apt-mark unhold package-name

# Beperkte pakketten tonen
apt-mark showhold

# Meerdere pakketten beperken
sudo apt-mark hold package1 package2 package3

Gebruiksscenario: Voorkom dat specifieke softwareversies automatisch worden bijgewerkt.

Gebruik van dpkg - Laag niveau pakkettool

dpkg is de onderliggende pakketbeheerder die APT gebruikt:

Basis dpkg-opdrachten:

# Pakket installeren
sudo dpkg -i package.deb

# Pakket verwijderen
sudo dpkg -r package-name

# Pakket verwijderen
sudo dpkg -P package-name

# Geïnstalleerde pakketten lijst
dpkg -l

# Bestanden in pakket lijst
dpkg -L package-name

# Bepaal welk pakket een bestand bevat
dpkg -S /path/to/file

# Pakketstatus controleren
dpkg -s package-name

# Pakket opnieuw configureren
sudo dpkg-reconfigure package-name

# Pakketintegriteit controleren
dpkg -V package-name

Gebroken pakketten herstellen:

# Gebroken pakketten opnieuw configureren
sudo dpkg --configure -a

# Ontbrekende afhankelijkheden herstellen
sudo apt install -f

# Krachtig opnieuw installeren
sudo apt install --reinstall package-name

Repositorybeheer

Repository’s bekijken

Bekijk geconfigureerde repositories:

# Bekijk sources list
cat /etc/apt/sources.list

# Bekijk extra sources
ls /etc/apt/sources.list.d/

# Bekijk alle ingeschakelde repos
grep -r --include '*.list' '^deb ' /etc/apt/

Repository’s toevoegen

PPA (Personal Package Archive) toevoegen:

# PPA-repository toevoegen
sudo add-apt-repository ppa:user/ppa-name
sudo apt update

# Voorbeeld: Git PPA toevoegen
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

Repository handmatig toevoegen:

# Repository toevoegen aan sources.list
echo "deb http://repository-url distribution component" | sudo tee -a /etc/apt/sources.list.d/custom.list

# GPG-sleutel toevoegen
wget -qO - https://example.com/key.gpg | sudo apt-key add -

# Pakketlijsten bijwerken
sudo apt update

Moderne sleutelbeheer (Ubuntu 22.04+):

# Sleutel downloaden en toevoegen aan sleutelring
wget -qO - https://example.com/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/custom.gpg

# Ongeschreven repository toevoegen
echo "deb [signed-by=/etc/apt/keyrings/custom.gpg] http://repo-url dist component" | sudo tee /etc/apt/sources.list.d/custom.list

Repository’s verwijderen

# PPA verwijderen
sudo add-apt-repository --remove ppa:user/ppa-name

# Of het list-bestand verwijderen
sudo rm /etc/apt/sources.list.d/ppa-name.list

# Bijwerken
sudo apt update

Alternatieve pakketbeheerders

Ubuntu ondersteunt ook Snap en Flatpak voor universele applicatieverpakking:

  • Snap: Bekijk onze uitgebreide Snap Pakketbeheer Gids voor gedetailleerde informatie over installatie, gebruik, kanalen, beperkingen en probleemoplossing.

  • Flatpak: Bekijk onze uitgebreide Flatpak Pakketbeheer Gids voor gedetailleerde informatie over installatie, Flathub, toegang, runtime en beheer.

Geavanceerd pakketbeheer

Bewerkingen simuleren (droog loop)

# Installatie simuleren
apt install -s package-name

# Upgrade simuleren
apt upgrade -s

# Wat zou worden geïnstalleerd tonen
apt-cache showpkg package-name

Pakketten downloaden zonder installeren

# Pakket alleen downloaden
apt download package-name

# Met afhankelijkheden downloaden
apt install --download-only package-name

# Naar specifieke map downloaden
cd /path/to/dir
apt download package-name

Pakketbestanden vinden

# Welk pakket een bestand levert
dpkg -S /path/to/file

# Bestanden in pakketten zoeken (inclusief niet geïnstalleerde)
apt-file search filename

# Installeer apt-file eerst
sudo apt install apt-file
sudo apt-file update

Pakketbeperkingen

Maak /etc/apt/preferences aan om pakketversies te beheren:

# Pakket beperken tot specifieke versie
sudo nano /etc/apt/preferences

Voeg toe:

Package: package-name
Pin: version 1.2.3*
Pin-Priority: 1001

Pakketvulnerabiliteiten controleren

# Controleer op beveiligingsupdates
sudo apt list --upgradable | grep security

# Controleer specifiek pakket op CVE's
apt-cache policy package-name

Probleemoplossing van veelvoorkomende problemen

Gebroken pakketten herstellen

# Methode 1: Afhankelijkheden herstellen
sudo apt install -f

# Methode 2: Pakketten opnieuw configureren
sudo dpkg --configure -a

# Methode 3: Opschonen en bijwerken
sudo apt clean
sudo apt update
sudo apt upgrade

# Methode 4: Krachtig herstellen
sudo apt --fix-broken install

“Geblokkeerd” database herstellen

# Lockbestanden verwijderen (alleen als geen apt-proces actief is!)
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -a

Controleer eerst op lopende processen:

ps aux | grep -i apt
sudo lsof /var/lib/dpkg/lock-frontend

Hashsomfoutmelding

# Cache opschonen en opnieuw proberen
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

GPG/sleutel fouten

# Sleutel opnieuw toevoegen
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID

# Of sleutel downloaden
wget -qO - https://repo-url/key.gpg | sudo apt-key add -

# Moderne aanpak (Ubuntu 22.04+)
wget -qO - https://repo-url/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/repo.gpg

Niet vervulde afhankelijkheden

# Probeer aptitude (beter afhankelijkheidssolver)
sudo apt install aptitude
sudo aptitude install package-name

# Of handmatige oplossing
sudo apt install package-name package-dependency

Repository niet gevonden (404)

# Update naar correcte repository
sudo nano /etc/apt/sources.list

# Oude release naam veranderen naar huidige
# Of verouderde PPA verwijderen
sudo add-apt-repository --remove ppa:name/ppa

Beste praktijken

Regelmatig onderhoud

Wekelijks routine:

#!/bin/bash
# Systeemupdate script

echo "Pakketlijsten bijwerken.."
sudo apt update

echo "Pakketten bijwerken.."
sudo apt upgrade -y

echo "Ongebruikte pakketten verwijderen.."
sudo apt autoremove -y

echo "Pakketcache opschonen.."
sudo apt autoclean

echo "Bijwerking voltooid!"

Beveiligingsupdates

Automatische updates voor beveiligingspatches:

# Installeer unattended-upgrades
sudo apt install unattended-upgrades

# Configureer
sudo dpkg-reconfigure unattended-upgrades

# Bewerk configuratie
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Serverconfiguratie: Als je Ubuntu Server beheert, is correcte netwerkconfiguratie essentieel voor betrouwbare pakketdownloads en systeemupdates. Leer hoe je een statisch IP-adres wijzigt in Ubuntu Server om stabiele verbinding te garanderen voor je pakketbeheerbewerkingen.

Pakketlijst back-up

Exporteer geïnstalleerde pakketten:

# Back-up maken
dpkg --get-selections > ~/package-list.txt

# Of met expliciete geïnstalleerde pakketten
apt-mark showmanual > ~/manually-installed.txt

# Herstel op een ander systeem
sudo dpkg --set-selections < ~/package-list.txt
sudo apt-get dselect-upgrade

Systeemgezondheid controleren

# Controleer op gebroken afhankelijkheden
sudo apt check

# Controleer alle pakketten
sudo debsums -c

# Controleer systeemlogboeken
journalctl -xe | grep -i apt
tail -f /var/log/apt/history.log

Prestatieoptimalisatie

Snellere pakketdownloads

Schakel parallel downloads in:

Bewerk /etc/apt/apt.conf.d/99parallel:

echo 'Acquire::Queue-Mode "host";' | sudo tee /etc/apt/apt.conf.d/99parallel
echo 'Acquire::http::Pipeline-Depth "5";' | sudo tee -a /etc/apt/apt.conf.d/99parallel

Gebruik snelste mirror:

# Installeer apt-fast
sudo add-apt-repository ppa:apt-fast/stable
sudo apt update
sudo apt install apt-fast

# Gebruik apt-fast in plaats van apt
sudo apt-fast install package-name

Cache grootte verminderen

# Beperk cache tot 100MB
echo 'APT::Archives::MaxSize "100";' | sudo tee /etc/apt/apt.conf.d/99max-cache

Nuttige pakketbeheerscripts

Update alle pakketbeheersystemen

#!/bin/bash
# Update alle pakketbeheersystemen

echo "=== APT Update ==="
sudo apt update && sudo apt upgrade -y

echo "=== Snap Update ==="
sudo snap refresh

echo "=== Flatpak Update ==="
flatpak update -y

echo "Alle systemen bijgewerkt!"

Grote pakketten vinden

# Lijst met grootste geïnstalleerde pakketten
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20

# Of leesbaardere indeling
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20 | awk '{printf "%.2f MB\t%s\n", $1/1024, $2}'

Pakketaudit

#!/bin/bash
# Pakketbeheersysteem audit

echo "=== Systeempakketstatistieken ==="
echo "Geïnstalleerde pakketten: $(dpkg -l | grep ^ii | wc -l)"
echo "Bij te werken pakketten: $(apt list --upgradable 2>/dev/null | grep -c upgradable)"
echo "Beperkte pakketten: $(apt-mark showhold | wc -l)"
echo "Automatisch verwijderbaar: $(apt autoremove --dry-run | grep -Po '^\d+')"
echo "Cache grootte: $(du -sh /var/cache/apt/archives | cut -f1)"

Snelkoppelingen gids

Essentiële opdrachten:

# Bijwerken & upgrade
sudo apt update && sudo apt upgrade -y

# Pakket installeren
sudo apt install package-name

# Pakket verwijderen
sudo apt remove package-name

# Pakket zoeken
apt search keyword

# Pakketinformatie tonen
apt show package-name

# Lijst met geïnstalleerde
apt list --installed

# Systeem opschonen
sudo apt autoremove && sudo apt autoclean

# Gebroken pakketten herstellen
sudo apt install -f && sudo dpkg --configure -a

Conclusie

Het beheer van het pakketbeheersysteem van Ubuntu is essentieel voor efficiënt systeembeheer. Of je nu de moderne apt-opdracht gebruikt voor interactieve sessies, apt-get voor scripts of universele pakketten verkent met Snap en Flatpak, het begrijpen van deze tools helpt je bij het onderhouden van een veilig, up-to-date en goed georganiseerd Ubuntu-systeem.

Begin met de basisopdrachten, voeg geleidelijk geavanceerde technieken toe en houd je systeem altijd bijgewerkt. Regelmatig onderhoud, gecombineerd met beste praktijken, garandeert een soepele en betrouwbare Ubuntu-ervaring.

Pro Tip: Voer altijd sudo apt update uit voordat je pakketten installeert of bijwerkt om ervoor te zorgen dat je werkt met de nieuwste pakketinformatie!

Gerelateerde artikelen op deze site