Xbps
# Xbps

X Binary Package System (XBPS) ist ein freies (BSD-Lizenz) Paketverwaltungs-System, das ursprünglich als Ersatz für pkgsrc entwickelt worden und nun der Paketmanager von Void Linux ist. Es umfasst das Paketformat und alle nötigen Programme, um xbps-Pakete zu erstellen und zu verwalten.

## Hintergrund

Das Ziel der Entwicklung ist es, einen schnellen, einfach zu benutzenden, fehlerfreien, aber funktionsreichen und portablen Paketmanager zu erstellen. Folgende Funktionen stehen zur Verfügung:
* Es werden mehrere Projektarchive, lokale als auch entfernte (via HTTP/HTTPS/FTP) unterstützt.
* Die entfernten Projektarchive sind mit RSA signiert.
* Die Paketmetadaten und die Dateien der Binärpakete sind mit SHA256 gehasht.
* Es werden die Paketzustände (ähnlich wie bei dpkg) verwendet, um bei der Installation oder der Aktualisierung die Gefahr von defekten Paketen zu mindern.
* Es besteht die Möglichkeit, nicht vollständige Installationen oder Aktualisierungen fortzuführen;
* die Möglichkeit, nur die Dateien zu entpacken, die in dem Paket aktualisiert wurden;
* die Möglichkeit, Metapakete zu verwenden;
* die Möglichkeit zu testen, ob es zu Inkompatibilitäten von gemeinsam genutzten Bibliotheken kommt.;
* die Möglichkeit, Pakete zu ersetzen;
* die Möglichkeit, Pakete von der Aktualisierung auszuschließen;
* die Möglichkeit, Konfigurationsdateien zu erhalten/zu aktualisieren;
* die Möglichkeit, Pakete erneut zu installieren;
* die Möglichkeit, Pakete mit einer niedrigeren Versionsnummer zu installieren;
* die Möglichkeit, Skripte vor und nach Installation, Entfernung oder Aktualisierung auszuführen;
* die Möglichkeit, die Pakete auf ihren Zustand, fehlende Dateien, Hashes, fehlende oder unaufgelöste Abhängigkeiten, freihängende oder geänderte symbolische Links u. Ä. zu untersuchen.
Die Programme des xbps-Paketmanagers sind auch die Basis für das Buildsystem. Dabei werden sogenannte Vorlagen in einem git-Projektarchiv definiert, so dass sich daraus die Binärpakete, auch für andere Rechnerarchitekturen als die installierte, erstellen lassen.
Die Binärpakete mit der Endung .xbps sind ähnlich wie .deb-Pakete gepackte tar-Archive. Standardmäßig wird xz als Packprogramm verwendet, Alternativen sind aber möglich. Die Metadaten werden als plist für die zu installierenden Dateien in files.plist und für das Paket als props.plist gehalten.

## Beispiele

Den Paketindex aktualisieren:
Alle Pakete aktualisieren:
Pakete suchen:
Ein Paket installieren:
Ein Paket mit allen abhängigen Paketen entfernen:
Alle manuell installierten Pakete auflisten:
Alle im Paket enthaltenen Dateien auflisten:
Alle Alternativen auflisten:

## Betriebssysteme, die xbps nutzen

Linux-Distributionen:
* Void Linux