opkg-Pakete
Autor: Gerd Raudenbusch
Stand: 27.05.2026
Grundlagen von opkg
opkg ist ein schlanker Paketmanager für eingebettete
Linux-Systeme und andere Geräte mit begrenzten Ressourcen. Er dient zum
Installieren, Aktualisieren und Entfernen von Softwarepaketen – ähnlich
wie andere bekannte Paketmanager wie apt oder
yum, jedoch speziell für kleine und ressourcenschonende
Umgebungen konzipiert (z. B. das openWrt-Router-Betriebssystem). Das Tool
opkg verwaltet Software in Form von Paketdateien mit der
Endung .ipk. Diese Pakete lassen sich einfach installieren,
entfernen oder aktualisieren. opkg versucht dabei,
erforderliche Abhängigkeiten automatisch aufzulösen.
Aufbau eines opkg-Pakets
Ein opkg-Paket ist ein mit ar komprimiertes
Container-Archiv, das Metadaten, Installationsskripte und die
eigentlichen Dateien enthält, die systemweit installiert werden sollen.
Der Aufbau ähnelt stark dem von Debian-Paketen (.deb),
wurde jedoch speziell für eingebettete Systeme angepasst. Ein
.ipk-Paket kann mit dem Befehl
ar x <packet.ipk> entpackt werden.
Der Inhalt ist wie folgt gegliedert:
├── control.tar.gz
│ ├── preinst (Shellscript, optional)
│ ├── prerm (Shellscript, optional)
│ ├── postinst (Shellckript, optional)
│ ├── postrm (Shellscript, optional)
│ └── control
├── data.tar.gz
│ └── <Packet-Inhalt>
└── debian-binary
control.tar.gz: Enthält Metadaten und Skripte für das Paket, die festlegen, wie das Paket installiert, konfiguriert oder entfernt wird. Dazu gehören beispielsweise die Steuerdatei mit Name, Version, Beschreibung, Abhängigkeiten sowie optionale Installations- oder Entfernungsskripte wie preinst, postinst, prerm und postrm. Diese vier Skripte werden bei der Installation und Entfernung eines opkg-Pakets in einer genau festgelegten Reihenfolge ausgeführt:preinst: Wird unmittelbar vor der Installation ausgeführt (Entpacken der Dateien).postinst: Wird unmittelbar nach der erfolgreichen Installation/dem Entpacken der Dateien ausgeführt.prerm: Wird vor dem Entfernen (Löschen) der Paketdateien ausgeführt.postrm: Wird nach dem erfolgreichen Entfernen der Paketdateien ausgeführt. Die Reihenfolge stellt sicher, dass notwendige Vorbereitungs- und Nachbereitungsarbeiten während der Installation und Deinstallation automatisch ablaufen, wie z. B. das Beenden oder Starten von Diensten oder das Löschen von Konfigurationsdateien. Die Ausführung erfolgt immer für die jeweilige Aktion und ist optional; wenn kein Skript vorhanden ist, wird der entsprechende Schritt einfach übersprungen.
data.tar.gz: Enthält die eigentlichen zu installierenden Dateien (z. B. Programme, Bibliotheken, Konfigurationsdateien), die später auf dem Zielsystem entpackt werden.debian-binary: Eine Textdatei mit der Versionsnummer des Paketformats, in der Regel einfach „2.0“.
Erstellen eines opkg-Pakets
Dazu ist folgende Verzeichnisstruktur erforderlich:
.
├── CONTROL
│ ├── preinst (Shellscript, optional)
│ ├── prerm (Shellscript, optional)
│ ├── postinst (Shellscript, optional)
│ ├── postrm (Shellscript, optional)
│ └── control
├── data
│ └── <Packet-Inhalt>
└── debian-binary
Die Steuerdatei hat folgenden Inhalt:
Package: mein-paketname
Version: 1.0
Architecture: all
Maintainer: ich <ich@domain.tld>
Description: Mein opkg Paket
Die Datei debian-binary hat folgenden
Inhalt:
2.0
Das folgende kleine bash-Skript erstellt das
.ipk-Archiv aus der vorgeschlagenen
Verzeichnisstruktur:
#!/bin/bash
tar czf control.tar.gz -C CONTROL .
tar czf data.tar.gz --exclude=CONTROL .
ar r mypacket.ipk control.tar.gz data.tar.gz debian-binary
Wichtige opkg-Befehle
opkg updateAktualisiert die Paketlistenopkg install <Paket>Installiert ein neues Paketopkg remove <Paket>Entfernt ein Paketopkg list-installedListet alle installierten Pakete aufopkg upgradeAktualisiert installierte Pakete auf die neueste Version