Paketmanagement unter Linux Grundlagen
Paketverwaltung unter Linux
Paketmanager vereinfachen die Installation, Aktualisierung und Entfernung von Software. Sie sorgen dafür, dass Software aus vertrauenswürdigen Quellen installiert, aktuell gehalten und bei Bedarf wieder entfernt werden kann. Dabei kümmern sie sich automatisch um Abhängigkeiten, Versionsprüfungen und Integrität der Pakete.
Debian / Ubuntu – apt und dpkg
Das Debian-Ökosystem (inkl. Ubuntu, Proxmox, Linux Mint usw.) nutzt das Paketformat .deb und verwaltet Pakete mit dpkg. Das darüberliegende Frontend apt (Advanced Package Tool) erleichtert die Verwaltung über Repositories und sorgt für automatische Abhängigkeitsauflösung.
System aktualisieren
- apt update
- apt upgrade -y
Paketinstallation aus Repository
- apt install nginx -y
- apt install mariadb-server php php-fpm -y
Paketinformationen anzeigen
- apt show nginx
- dpkg -l | grep nginx
Paket entfernen
- apt remove nginx -y
- apt purge nginx -y # inklusive Konfigurationsdateien
- apt autoremove -y # ungenutzte Abhängigkeiten entfernen
Repository hinzufügen
Repositorien werden in der Datei **/etc/apt/sources.list** oder unter **/etc/apt/sources.list.d/** verwaltet.
- vi /etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main contrib non-free deb http://security.debian.org/debian-security bookworm-security main
- apt update
Manuelle Installation eines .deb-Pakets
Falls ein Paket manuell heruntergeladen wurde, kann es direkt mit dpkg installiert werden.
- dpkg -i paketname.deb
- apt -f install # fehlende Abhängigkeiten automatisch nachinstallieren
Beispiel: Git manuell installieren und kompilieren
- apt install build-essential git -y
- git clone https://github.com/vim/vim.git
- apt install libncurses5-dev libncursesw5-dev -y
- cd vim
- ./configure
- make
- make install
Red Hat / Rocky / Alma / Fedora – dnf und rpm
Red-Hat-basierte Distributionen verwenden das Paketformat .rpm. Die eigentliche Installation erfolgt über rpm, während dnf (Dandified Yum) als komfortabler Paketmanager die Verwaltung übernimmt.
System aktualisieren
- dnf update -y
Paketinstallation aus Repository
- dnf install nginx -y
- dnf install php php-fpm mariadb-server firewalld -y
Paketinformationen anzeigen
- dnf info nginx
- rpm -qi nginx
Paket entfernen
- dnf remove nginx -y
- dnf autoremove -y
Repository hinzufügen
Das zusätzliche Repository EPEL (Extra Packages for Enterprise Linux) bietet viele nützliche Pakete, die nicht im Standard enthalten sind. Die Installation erfolgt über ein offizielles rpm-Paket:
- dnf install epel-release -y
Prüfe, ob das Repository aktiv ist:
- dnf repolist
Beispiel: Installation eines Pakets aus EPEL (z. B. htop):
- dnf install htop -y
Manuelle Konfiguration eines eigenen Repositorys
Repositorien befinden sich im Verzeichnis /etc/yum.repos.d/. Hier kann eine eigene Datei angelegt werden:
- vi /etc/yum.repos.d/custom.repo
[custom] name=Custom Repository baseurl=http://mirror.local/repo/ enabled=1 gpgcheck=0
- dnf clean all
- dnf makecache
Manuelle Installation eines .rpm-Pakets
- rpm -ivh paketname.rpm
# oder über dnf, das Abhängigkeiten automatisch löst:
- dnf install ./paketname.rpm -y
Software manuell aus Quellcode kompilieren
- dnf groupinstall "Development Tools" -y
- dnf install ncurses-devel git -y
- git clone https://github.com/vim/vim.git
- cd vim
- ./configure --with-features=huge --enable-multibyte --enable-python3interp=yes --with-tlib=ncurses
- make
- make install
Beispielpaket
Erstelle und installiere ein kleines Beispielprogramm aus Quellcode:
- dnf install gcc make checkinstall -y
- vi hello.c
#include <stdio.h>
int main() {
printf("Hello, RPM World!\n");
return 0;
}
- gcc hello.c -o hello
- checkinstall --pkgname=hello --pkgversion=1.0 --provides=hello --requires=glibc --install=yes
- rpm -qi hello
Erklärung zu checkinstall
Das Programm checkinstall ersetzt den Befehl make install. Es überwacht, welche Dateien installiert werden, erstellt daraus ein sauberes .rpm-Paket und installiert dieses anschließend über den Paketmanager.
Optionen im Beispiel:
- --pkgname=hello – Name des erzeugten Pakets
- --pkgversion=1.0 – Versionsnummer
- --provides=hello – Name, den das Paket bereitstellt
- --requires=glibc – Abhängigkeit, die erfüllt sein muss
- --install=yes – Paket nach Erstellung automatisch installieren
So entsteht ein reguläres RPM-Paket, das du später mit dnf remove hello wieder sauber deinstallieren kannst.