Pacman3 ist da!
Nach mehr als einem Jahr Entwicklungszeit wurde Pacman, der zentrale Paket-Manager von ArchLinux, nun in der Version 3.0.0 freigegeben. Das ursprünglich von Judd Vinet geschriebene Kommandozeilen-Werkzeug wurde von einem grösseren Team - zunächst unter der Leitung von Aurelien Foret, später von Aaron Griffin - grundlegend umgebaut. Ab sofort liegt die neue Version im [testing]-Repositorium bereit. Alle Archer sind damit aufgerufen, sich an der Jagd nach den letzten Tücken zu beteiligen. Nach einer Testphase von nur zwei Wochen soll Pacman3 offiziell die alte Version 2.9.8 ablösen.
Modularer Aufbau
Die wichtigste Neuerung interessiert vor allem die Entwickler: Das bisher monolithische Programm greift nun auf eine Reihe von Bibliotheken zurück.
libarchive und
libdownload kommen als neue Abhängigkeiten mit. Das eigentliche Herz von Pacman ist nun jedoch
libalpm - eine Abkürzung für "ArchLinux Package Manager". Wichtige Basisfunktionen wurden in diese Bibliothek ausgelagert, und Pacman selbst wird zu einem einfachen Frontend für
libalpm. Damit wird es in Zukunft auch möglich sein, neue (etwa grafische) Frontends zu entwickeln, die direkt auf
libalpm zugreifen - statt umständlich einen weiteren Wrapper um Pacman zu legen. Bei einer Systemaktualisierung wird nun also die Liste der erneuerbaren Pakete aus
libaplm ausgelesen.
libdownload kümmert sich - wie der Name vermuten lässt - um den Kontakt zu den Servern und übergibt die Pakete zur Installation an Pacman. Der modulare Aufbau erleichtert die künftige Entwicklung von Pacman und rechtfertigt gleichzeitig den Sprung auf eine neue Versionsnummer. Wer sich näher für das Zusammenspiel der neuen Bibliotheken interessiert, findet die derzeit ausführlichste Beschreibung in einem in Pacman3 enthaltenen README.
Hierarchische Spiegel
Pacman3 enthält u.a. das neue Python-Skript "rankmirrors", das die Reaktionszeit aller verfügbaren Server testet. Dem schnellsten Server (für deutsche Nutzer wahrscheinlich
ftp.hosteurope.de) kann dann in der "/etc/pacman.conf" die höchste Priorität eingeräumt werden, um Pacman zu beschleunigen. Für diese Datei steht nun auch eine eigene
man page zur Verfügung. Die Mirror-Listen in "/etc/pacman.d" sind nun nach Kontinenten und Ländern geordnet. Es wird empfohlen, alle weit entfernten Server von diesen Listen zu entfernen, bevor man "rankmirrors" ausführt.
Pacman babelt
Neben Englisch beherrscht Pacman jetzt eine Reihe weiterer Sprachen - derzeit Deutsch, Französisch, Italienisch, Ungarisch, Russisch und brasilianisches Portugiesisch. Pedanten können die Ausgabe auch auf Englisch in britischer Rechtschreibung umstellen. Die für ein System gültige Grundsprache wird zur Laufzeit automatisch ausgelesen. Nachrichten und Ratschläge im allzu häufig überlesenen Pacman-Output werden nun in "/var/log/pacman.log" gespeichert. Diese Meldungen erscheinen allerdings vorerst weiterhin auf Englisch.
Arch & Frugalware
Die vorwiegend in Ungarn entwickelte, Slackware-basierte Distribution
Frugalware hat Pacman bereits vor geraumer Zeit als Paketmanager übernommen. Die Entwickler von Frugalware steuerten zahlreiche Neuerungen bei, zeigten sich jedoch zunehmend gereizt über das schleppende Entwicklungstempo. Im vergangenen Herbst brach ein erbitterter Streit über Copyright-Fragen aus: Die Arch-Entwickler bestanden darauf, dass das gesamte Projekt nur unter dem Namen von Judd Vinet GPL-konform weitergeführt werden könne - bei Frugalware sollten einzelne Neuerungen dagegen unter dem Namen der jeweiligen Autoren erscheinen. Nach einer zunehmend emotional, polemisch und persönlich geführten Debatte entlud sich der aufgestaute Frust schliesslich an einer Kleinigkeit: Im Dezember 2006 entschieden die Entwickler von Frugalware, keinen Code mehr direkt mit dem Arch-Team auszutauschen. Stattdessen wird der Paketmanager von Frugalware nun unter der Bezeichnung "pacman-g2" eigenständig weiterentwickelt. Angesichts der persönlichen Differenzen scheint eine Wiedervereinigung der parallelen Projekte derzeit unwahrscheinlich.
Neue Funktionen
Grundsätzlich soll die neue Pacman-Version beweisen, dass der modulare Aufbau funktioniert. Erst mit der kommenden Version 3.1. werden sich die Entwickler auf eine erhöhte Funktionalität des Programms konzentrieren. Neben der größeren Geschwindigkeit können sich die Nutzer jedoch bereits jetzt auf einige neue Befehle freuen: "pacman -Qu" etwa zeigt alle aktualisierbaren Pakete an (ohne die Aktualisierung wirklich durchzuführen), "pacman -Qc" sucht nach den Changelogs von Paketen. Für Pacman 3.1. soll u.a. die Code-Basis weiter entrümpelt, die Suchfunktion und Dokumentation verbessert. Ausserdem ist die Einführung einer Downgrade-Funktion und eine Option für farbige Ausgabe geplant.
PS: Danke an Pierre für seine Hilfe mit von mir ungliebten technischen Details 😉