Laat ik me eerste voorstellen: ik ben een van de developers van autopackage. Jawel, ik spreek Nederlands. Ik zie dat er veel misverstand is rond autopackage.
Ten eerste: het doel van autopackage is
niet om een all-your-base-are-belong-to-us package manager te maken die alles doet. Het is niet ons doel om RPM/DEB te vervangen. Het is ons doel om softwareinstallatie voor
desktop Linux gemakkelijker te maken. Let op het woord desktop (en niet server).
Dat RPM/DEB/Ebuild/etc al bestaat en waarom autopackage dan nog nodig is, is een veel voorkomende vraag. Kijk eens rond op wat Linux forums en je ziet dat vandaag, December 2005, mensen nog steeds klagen over softwareinstallatie op Linux! Een van mijn klasgenoten heeft recentelijk een bekende Linux distro geinstalleerd, en hij klaagt dat softwareinstallatie op Linux "fucking moeilijk" is. Conclusie: RPM/DEB/Ebuild/etc (ik wil dit niet steeds overnieuw typen dus vanaf nu zeg ik "RDE") lossen niet alle problemen rond softwareinstallatie op.
Het grootste probleem met RDE is dat ze distributie-afhankelijk zijn! Als je een RPM maakt voor Fedora 4 dan kun je met vrij veel zekerheid zeggen dat ie niet zal werken op bijvoorbeeld Ubuntu of zelfs een ander RPM-distributie als SuSE. Ditto voor andere RDEs. Dit is:
1. Zeer lastig voor gebruikers.
2. Zeer lastig voor developers, die installatie van hun programma zo gemakkelijk mogelijk willen maken voor hun gebruikers. Developers moeten een aparte package voor bijna alle distributies. Als gewone huis-tuin-en-keuken developer is dat haast onmogelijk.
(voordat je yum/apt noemt, lees verder)
Waarom packages niet werken zal ik hier niet uitleggen, dat zijn immers technische details. Als je geinteresseerd ben in ons onderzoek, bekijk dan onze site (met name de Wiki, stukje over binary compatibility). Wel is het zo dat het probleem veel en veel meer is dan de package formaat alleen.
En tadaa - daar komt autopackage binnen. Autopackage is distributie-onafhankelijk. Als je als developer een autopackage maakt dan kan dat geinstalleerd worden op vele distributies. Ook makkelijk voor gebruikers.
Let op dat autopackage veel meer is dan alleen maar alweer-een-nieuw-bestandsformaat. Wij doen ook heel veel onderzoek op het gebied van inter-distro binary compatibility, en voor zover ik weet zijn wij ook de *enige* groep die dat doen. Andere projecten doen dat helemaal niet. Dit maakt ons uniek.
Maar yum en apt (let op! niet verwarren met RPM en DEB!) dan? Ik denk dat het feit dat mensen nog steeds klagen wel duidelijk is dat ze niet alles oplossen. Ik zal wat specifieker zijn over hun problemen. Mensen klagen voornamelijk over:
1. De software die ik zoek is niet in de repository.
2. De software die ik zoek is wel in de repository, maar is veel te oud.
3. De software die ik zoek is wel in de repository, maar doet het niet! *cough* galeon 1.3 Fedora Extras *cough*
De huidige pakketten worden voornamelijk beheerd door 3rd parties (downstream) ipv de developers van de software zelf (upstream).
Uit #1 kun je, met behulp van wat intuitie, de volgende conclusie trekken: het is gewoon onmogelijk om alle software in de wereld in x repositories te zetten, x=aantal distros die bestaan. Je dupliceert alles dan x keer. Dat kan niet tot het oneindige goed gaan.
Ik heb van sommige mensen horen zeggen dat ze hun software willen laten inpakken door een "gekwalificeerde packager", maar aangezien #3 bestaat zijn de packagers duidelijk niet zo gekwalificeerd. En wie kent het programma nou beter? De upstream developers of iemand die het programma zelf niet heeft geschreven? Mike Hearn (wine developer en autopackage developer) heeft in het verleden al geklaagd over mensen die bug reports sturen over wine, terwijl die bugs eigenlijk veroorzaakt worden door wine Ebuilds die niet goed gemaakt zijn.
Conclusie: het is onze filosofie dat de upstream developers zelf ook pakketten moeten leveren. Dat bespaart een hele hoop ellende.
Als er een library problemen heeft wil je niet het hele package opnieuw downloaden of beschikbaar stellen (en wie gaat dat allemaal controleren/bijhouden?), dan wil je alleen de library updaten.
Waarom is dat een probleem van autopackage? Voor de duidelijkheid: autopackages zijn niet statisch gelinkt naar alle dependencies.
Veiligheid, distributies signeren en verifieren automatisch de handtekening van hun pakketten voordat ze gaan installeren (publiek key stond al op de originele CD). Bij losse software van diverse bronnen kan er makkelijk(er) gerommeld worden onderweg.
Je kan ook autopackages ondertekenen met gpg. De signature wordt in een externe file gezet, maar het kan wel. Geintegreerde GPG ondersteuning staat op mijn todo lijst.
Als er nog vragen zijn dan hoor ik het graag.