3.3.2 Er zijn verschillende package-tools: rpm, emerge en apt-get. Wat is nu eigenlijk het beste?
Eerst en vooral: vergelijk de juiste tools met elkaar. Dus niet rpm met
apt-get, maar rpm met dpkg. Beide tools hebben een aantal
overeenkomsten en een aantal gelijkenissen. Verder is emerge iets totaal
anders; ik leg dit later uit.
Eerst de gelijkenissen tussen dpkg en rpm:
-
Beide pakken een aantal bestanden in in een binair bestand.
- Beide voorzien de mogelijkheid om verschillende scripts te laten
uitvoeren voor of na het installeren zowel als voor of na het verwijderen.
- Beide houden een databank bij met daarin de geinstalleerde pakketten, en
de bestanden die geinstalleerd worden.
De verschillen tussen dpkg en rpm:
-
rpm wordt in meerdere distributies gebruikt die in sommige
gevallen absoluut niet op elkaar lijken, en zelfs op andere besturingssystemen
zoals Solaris
- rpm noteert afhankelijkheden (dependencies) naar zowel bestanden,
pckagenamen als ‘concepten’. Voordeel is dat een bestand theoretisch te
gebruiken valt in verschillende distributies zolang de bestanden dezelfde
naam hebben. Nadeel hiervan kan zijn dat het moeilijker is om het juiste
package te zoeken.
dpkg noteert dependencies naar andere packages. Voordeel is dat je
direct weet welk package je moet installeren, nadeel is dat het minder
portable is.
- rpm gebruikt een binaire databank voor de geinstalleerde rpm’s
(db3 formaat), dpkg gebruikt tekstbestanden. Binaire bestanden zijn
doorgaans sneller, maar meestal moeilijker te lezen door andere programma’s.
- De mogelijke statussen die een geinstalleerd rpm-package kan aannemen
zijn kleiner in aantal. dpkg kent ook een aantal ‘half-*’ statussen,
zoals ‘half-installed’, wat aangeeft dat het package nog niet helemaal
geinstalleerd was. Bij de volgende run kan dat dan verholpen worden.
rpm kent dit niet.
- rpm heeft ingebouwde functionaliteit om rpm’s te authenticeren
d.m.v. cryptografische handtekeningen.
- rpm’s moeten standalone geinstalleerd kunnen worden, er kan de gebruiker
niets gevraagd worden. dpkg heeft de mogelijkheid om een aantal vragen
te stellen en zodoende het package al bij de installatie te configureren.
- dpkg heeft meerdere niveaus van afhankelijkheden. Bij rpm moet
een bestand er zijn, mag het er niet zijn of is er geen vermelding. Bij
dpkg moet het er zijn, kan het er best wel zijn maar moet dat niet
absoluut, is het wel interessant dat het er eventueel is, mag het er niet
zijn, of is er geen vermelding. Dit laatste laat meer flexibiliteit toe.
Daarnaast wordt vooral het programma apt-get veel gebruikt in
combinatie met dpkg, maar er is ook een apt-get voor
rpm, gemaakt (op basis van apt-get voor dpkg) door Conectiva GNU/Linux.
emerge is de package-tool die door Gentoo gebruikt wordt. In
tegenstelling tot dpkg en rpm focust emerge zich op
broncode ipv binaire bestanden. Ze laat voor de rest gelijkaardige zaken toe
als dpkg en/of rpm:
-
Ze voorziet tevens in het uitvoeren van scripts voor of na het
installeren (en zelfs tijdens).
- Ze houdt ook een databank bij met geinstalleerde packetten/bestanden.
- Ze noteert afhankelijkheden naar packages, maar de afhankelijkheden zijn
dynamisch (i.e. een package kan ofwel afhangen van een andere package, ofwel
mogelijk afhangen van een package indien de gebruiker ondersteuning voor een
bepaald concept wenst)
- Ze gebruikt tekstbestanden om alle informatie op te slaan
- Ze onthoudt md5sums van de geinstalleerde bestanden
- Ze kan (maar dit wordt door Gentoo niet toegepast) de gebruiker vragen
naar informatie tijdens de installatie van een pakket
Verder laat emerge wel toe om binaire packetten te installeren (net
zoals rpm en dpkg toelaten om broncodebestanden te gebruiken),
maar ligt de nadruk daar niet echt op.
Wat is het beste? Maak dat voor jezelf uit ;-)
BCOL-FAQ : De Belgische Linux nieuwsgroep vragen