Paketmanagement unter Linux Grundlagen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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.

Tar