Smart package manager in opkomst
Hans Lunsing, 29 oktober 2005
APT als universeel pakketbeheersysteem
APT, de Advanced Packaging Tool,
het pakketbeheersysteem van Debian en afgeleide Linux distributies, is
bekend door de uitstekende wijze waarop het afhankelijkheden tussen
pakketten oplost en het gemak waarmee het te bedienen is. Het werd
zelfs nog een stuk gemakkelijker door de komst van Synaptic,
een grafische werkomgeving voor het gebruik van APT. APT werkt
met het eigen pakketformaat van Debian, maar veel Linux
distributies zijn gebaseerd op rpm, het door Redhat ontwikkelde
pakketformaat. De grotere rpm distributies, Mandriva, SUSE en Fedora
(de open versie van Redhat), hebben eigen pakketbeheersystemen voor rpm
ontwikkeld of ze van anderen geleend. Zo werkt Mandriva met zijn eigen urpmi, SUSE met het bekende Yast, en heeft Fedora Yum overgenomen van de Yellow Dog distributie.
Er
is kortom weinig eenheid in pakketbeheersystemen. Toch is er
één systeem dat op de meeste distributies kan worden
gebruikt. Door Conectiva, een Braziliaanse Linux distributie die is
opgegaan in Mandriva, is APT indertijd geporteerd naar rpm systemen
onder de naam Apt-rpm.
Het is nu voor elk van de grote rpm distributies beschikbaar samen met
de bijbehorende werkomgeving Synaptic. Op Mandriva kan het eenvoudig in
plaats van urpmi worden gebruikt omdat het met de urpmi repositories
(waar pakketten ter beschikking wordt gesteld) kan omgaan. SUSE heeft
Apt-rpm tot versie 10.0 nooit officieel ondersteund en nam Apt-rpm en
Synaptic zelfs niet in haar distributie op. SUSE pakketten voor apt en
Synaptic zijn echter wel verkrijgbaar en een groep SUSE gebruikers
en mogelijk ook medewerkers onderhouden uitgebreide Apt-rpm
repositories. In versie 10.0, de eerste open versie van SUSE, zijn
Apt-rpm en synaptic voor het eerst opgenomen. Voor Fedora werd Apt-rpm
aanvankelijk als pakketbeheersysteem gekozen. Op aandringen van Redhat
is dat Yum geworden, maar Apt-rpm bleef beschikbaar.
Synaptic is
een GTK programma en daarom vooral goed in Gnome geïntegreerd.
Hoewel het ook prima onder KDE werkt heeft de maker van Synaptic (en
Apt-rpm), Gustavo Niemeyer, een begin gemaakt met een op QT gebaseerde
werkomgeving voor KDE onder de naam Kynaptic.
Gustavo heeft het echter nooit volledig afgerond omdat hij sinds
halverwege vorig jaar aan een nieuw pakketbeheersysteem werkt met de
naam Smart. Kynaptic is in zijn huidige staat bruikbaar, maar mist
veel van de functionaliteit van Synaptic. Ondanks dat werd het de
officiele werkomgeving voor APT in Kubuntu, het KDE zusje van Ubuntu.
Kennelijk voldeed het niet, want Kubuntu is in versie 5.10 (Breezy
Badger) inmiddels over op een nieuwe werkomgeving voor APT met
de passende naam Adept. Daarbij behoort de Adept Updater.
Smartpm als opvolger van APT, en van meer
Inmiddels is er op het gebied van pakketbeheer een nieuwe ster aan het firmament verschenen: de Smart package manager
(Smartpm). Zoals gezegd werkt Gustavo Niemeyer , in samenwerking met
anderen sinds halverwege vorig jaar aan dit project. Het werd tot
september j.l. gefinancierd door Conectiva, en sindsdien door Canonical
Ltd. Smart kan met verschillende typen repositories werken (APT in
zowel zijn deb- als rpm-vorm, urpmi, yum, en ook Red Carpet en
Slackware) en vervangt dan ook onder meer APT, urpmi en yum. Het
belangrijkste verschil met deze oudere pakketbeheersystemen is dat de
algorithmes voor de keuze van te installeren, te verwijderen en bij te
werken pakketten sterk zijn verbeterd. Smartpm komt daardoor in
verschillende gevallen tot een goede oplossing waar de andere managers
het laten afweten. Smartpm kan op de opdrachtregel worden gebruikt,
maar heeft ook een grafische werkomgeving à la Synaptic. In hoog
tempo verschijnen nieuwe versies en bugfixes. Het actuele versienummer
is 0.40.
De grote rpm distributies gaan weliswaar nog niet
helemaal over op Smartpm, maar ze ondersteunen het inmiddels wel
actief. Blijkens een bericht op Distrowatch krijgt SUSE 10.1 naast Yast de beschikking over Smartpm. Het systeem wordt daarin zelfs aangekondigd als opvolger van APT.
Eind december 2004 al werd op het FedoraForum aangekondigd dat Smartpm pakketten klaar stonden voor gebruikers van Fedora Core 3. Blijkens een recent artikel op LWN
wordt gebruikers van Fedora Core 3 zelfs aangeraden af te stappen van
Apt-rpm en over te gaan op nieuwere tools als Yum of Smartpm. Als
belangrijkste reden wordt aangevoerd dat Conectiva Apt-rpm heeft
opgegeven en nu werkt aan Smartpm. Daardoor zullen bugs in Apt-rpm
mogelijk nooit worden hersteld en zal ontbrekende functionaliteit nooit
worden aangevuld, zodat het voor het Fedora Project onmogelijk wordt
Apt-rpm nog te ondersteunen. Omdat Smartpm ook de Yum repositories
(repodata) ondersteunt kan het goed in plaats van Yum worden gebruikt.
Mandriva, de opvolger van Mandrake, is in Mandriva Linux 2006 volgens Distrowatch
over op Smartpm als package manager. In een recent interview met Linux
Format liet de oprichter van Mandrake, Gaël Duval, al
doorschemeren dat Smartpm op korte termijn met urpmi zal worden
geïntegreerd, zo meldt Distrowatch.
Als reden gaf hij dat Smartpm betere algorithmes heeft en meer
geavanceerd is. Daarbij speelt natuurlijk mee dat Conectiva, waar de
ontwikkeling van Smartpm is gestart, met Mandrake is opgegaan in
Mandriva, zodat Smartpm in wezen een product van eigen huis is.
In
het Debian kamp blijft APT voorlopig nog koning, maar Ubuntu en Kubuntu
leveren Smartpm wel in hun universe repository. Ook Debian zelf stelt
het beschikbaar.
Het is interessant te zien hoe dit zich verder ontwikkelt.
Test van Smartpm
Ik
heb Smartpm getest op SUSE 10.0 in vergelijking met Synaptic/APT. Het
eerste dat me opviel was dat Smartpm weliswaar een bescheiden
hoeveelheid geheugen gebruikt als alleen de RPM database is geladen,
maar dat dat snel toeneemt naarmate meer zgn. "kanalen" worden
toegevoegd, afhankelijk van de hoeveelheid software die daarin ter
beschikking wordt gesteld. Nadat ik al mijn APT repositories had
toegevoegd was het beslag op het fysieke geheugen iets meer dan 130Mb,
dat is ruim 25%. De oorzaak daarvan wordt uitgelegd in de FAQ.
Een
tweede punt is dat het configuratiebestand geen tekstbestand is, maar
binair. Je kunt de configuratie dus alleen maar via Smartpm zelf
aanpassen. Nu blijkt dat redelijk simpel te doen, en als je er eenmaal
de slag van te pakken hebt gaat het ook prima en sneller zelfs via de
command line interface van Smartpm. Het configuratiebestand
staat niet onder /etc/smart maar onder /var/lib/smart. Onder
/etc/smart kunnen de gegevens van toegevoegde kanalen staan in
tekstformaat.
Het programma is gemakkelijk in gebruik, en dat
het betere algorithmes gebruikt merk je. Smartpm spoort meer mogelijke
upgrades op. Van enkele pakketten bleken bij upgrade de namen te zijn
veranderd. Synaptic herkende dat niet als mogelijke upgrade, maar
Smartpm wel. Verder kun je met Smartpm in tegenstelling tot
Synaptic ook downgraden. Zo was het mij met Synaptic onmogelijk om een
bepaalde library te verwijderen omdat een ander pakket er afhankelijk
van was. Van dat andere pakket was echter ook een iets oudere versie
beschikbaar die met een iets oudere versie van de library in kwestie
werkte. En die laatste stond al op mijn systeem omdat hij voor
weer andere software nodig was. Een simpele downgrade van het pakket
was dus voldoende. Synaptic kwam daar niet achter, maar Smartpm
wel. Smartpm laat dan ook alle beschikbare versies van
een pakket zien en niet alleen de nieuwste zoals Synaptic.
Naar
mij mening is Smartpm een goede opvolger voor APT. Het zou echter wel
fijn zijn als het geheugenbeslag wat kon worden verminderd. Door zoals
aangegeven in de FAQ de cache en de Python JIT niet te gebruiken
bespaar je een heel klein beetje op het geheugen, maar dat weegt niet
op tegen de geringere snelheid.