Bereits seit 2004 arbeiten einige Entwickler der Firma rPath, die früher bei Red Hat für das Paketformat RPM zuständig waren, an der nächsten Generation der Paketverwaltung. Das Ergebnis dieser Bemühungen, Conary [1], findet in rPath Linux sowie Foresight Linux ([2], siehe Kasten "Fortschrittliche Distributionen") Verwendung. Verglichen mit den auf dem Markt vorherrschenden Systemen von Red Hat, Novell und Debian erhalten nicht nur die Pakete selbst eine Versionsnummer.
Conary geht sogar soweit, den darin enthaltenen Dateien eine Revision, ähnlich wie bei CVS/SVN (siehe Kasten "Versionsverwaltung"), zu spendieren. Damit löst Conary viele Probleme, die es bei APT und RPM derzeit gibt. Als weiterer Vorteil kommt hinzu, dass das System nur noch das herunterlädt, was sich auch wirklich geändert hat. Vor allem Benutzern, die kein DSL zu Hause haben, kommt diese Eigenschaft sehr entgegen. Zudem erbt Conary auch das merge, commit, diff und viele weitere, von CVS/SVN bekannte Befehle, die eine Paketrevisionierung erst zulassen.
Fortschrittliche Distributionen
Die in der letzten Ausgabe von LinuxUser vorgestellte Distribution Foresight Linux ([3], Abbildung 1) kommt mit der neusten Version von Gnome daher und ist, verglichen mit anderen Distributionen, an Aktualität kaum zu übertreffen. Der Grund dafür: Dank Conary kann jedermann Pakete sehr einfach bauen, und selbst Aktualisierungen bedeuten dank inkrementeller Updates keinen großen Mehraufwand.
Versionsverwaltung
Mit CVS beziehungsweise Subversion (SVN) [4] verwalten Sie verschiedene Versionen von Dateien. Bei einer Änderung besteht die Möglichkeit, die vorherige Version wiederherzustellen. Große Projekte, wie Mozilla oder Gnome, organisieren typischerweise damit Ihren Quellcode.
Begriffserklärung
Conary führt eine Reihe neuer Konzepte und – damit einhergehend – neuer Begriffsdefinitionen ein. Ein Repository im Sinn von Conary Ist eine Datenbank, die Dateien und Pakete enthält (Abbildung 2). Dabei lassen sich sogar mehrere Versionen der Pakete speichern. Alles, was Sie einmal zum Repository hinzugefügt haben, bleibt für immer gespeichert. Das ermöglicht, auch auf ältere Versionen eines Programmpaketes zurückzugreifen. Conary macht davon regen Gebrauch.
Alles, was in einem Repository vorhanden ist, heißt generell Trove. Ein Trove enthält entweder Dateien oder andere Troves. Als Files bezeichnet Conary Dateien mit eindeutigen Bezeichnern. Dies ist ein weiteres Konzept, das sich von den etablierten Paketmanagern unterscheidet. Conary greift mit Hilfe dieser Bezeichner auf die Dateien zu, anstatt Pfadnamen zu verwenden.
Dateien gruppiert Conary in Components und diese wiederum in Packages. Nicht alle Komponenten bilden einen Teil eines Pakets – beispielsweise solche, die auf source oder test enden. Gängige Komponenten sind: doc, lib, runtime oder python. Als Group definiert Conary eine Ansammlung von Troves. Groups tragen grundsätzlich group- in ihrem Namen. Ein Fileset (fileset-) ist analog dazu eine Ansammlung von Dateien.
Von Gentoo wissen Sie vielleicht schon, dass Sie Programme mit verschiedenen Optionen übersetzen können. Das Conary-Äquivalent dazu sind Flavors, wovon es vier zu unterscheiden gilt: architektur-, instruktionssatz- und paketspezifische sowie systemweite Flavors. Changesets repräsentieren Änderungen zwischen zwei Versionen oder stellen ein eigenständiges Paket dar, falls es zuvor keine Version davon gab. Conary verwendet Changesets als Kommunikationsschnittstelle zwischen Client und dem Repository.
Die Versionsnummern fallen bei Conary etwas komplizierter aus als bei Debian oder Fedora: Der Paketname, das Repository, das Label und die Version selbst trennt ein Schrägstrich ("/") voneinander. Das Bash-Paket heißt beispielsweise
bash=/conary.rpath.com@rpl:devel//1/3.0.16-7-0.1
Im hinteren Teil erkennen Sie die Version. rpl:devel bedeutet, dass es sich um ein mehr oder weniger experimentelles Paket handelt. Ähnlich wie bei Debian durchläuft es dann mehrere Schritte, wie etwa qa für Qualitätssicherung und release für das stabile endgültige Produkt.
Erste Schritte
Falls Sie bereits mit Yum oder Apt gearbeitet haben, bereiten Ihnen die grundlegenden Conary-Optionen keine Probleme. Sie geben sich teilweise sogar intuitiver, wodurch sich die Einarbeitungszeit erheblich reduziert. Bislang steht noch kein grafisches Frontend für Conary bereit, und so müssen Sie vorerst mit der Befehlszeile vorlieb nehmen. Für alle folgenden Operationen benötigen Sie Administratorrechte (sudo su -) und müssen die Groß-/Kleinschreibung bei Paketnamen beachten:
conary updateall: Aktualisiert das gesamte Systemconary update Paket: installiert Paketconary erase Paket: löscht Paketconary query: Gibt die Liste der installierten Pakete ausconary repquery Paket: sucht im Repository nach Paket
Mit diesen fünf Befehlen haben Sie das System bestens im Griff. Einen guten Überblick über alle Optionen erhalten Sie mit conary help. Interessant ist die Möglichkeit, auf eine ältere Version eines Pakets zu deaktualisieren. Durch die im Paketmanager verwendete Versionierung spielt das System auch hier nur die notwendigen Dateien ein. Auch das Halten von Paketen beherrscht Conary. Speziell beim Linux Kernel erweist sich das manchmal als Vorteil. Sie erreichen das mit conary pin Paket
. Um das Paket wieder freizugeben, dient der Befehl conary unpin Paket
.
Debian-Benutzer wissen, dass apt-get source Paket
aus Quellpaketen, die in einem Apt-Repository liegen, fertige Binärpakete baut. Mit Conary erreichen Sie das durch conary emerge Paket
. Über Sinn und Zweck dieser von Gentoo bestens bekannten Aktion lässt sich trefflich streiten: In der Regel brauchen Sie keine Pakete auf diese Weise zu übersetzen.



