Il software è come il sesso, è meglio quando è libero. (Software is like sex, it's better when it's free).
E' difficile fare un confronto sereno tra package managers, tuttavia spesso si fa un po' di confusione, e quindi mi pare “simpatico” fare due chiacchiere su DPKG, APT e soci, per vedere come si collocano in rapporto ad altri strumenti analoghi, specie per quanto riguarda lo storico RPM creato da RedHat. Non so voi, ma per me è stato impossibile avere delle opinioni “superpartes”, è un po' come, rimanendo in ambito pinguinesco, chiedere se è meglio GNOME o KDE. Infatti quando si chiede a qualcuno quale sia il loro gestore di pacchetti preferito e perché, si ottengono sempre risposte uguali sia da una parte che dall'altra. Bisognerebbe a volte ammettere la propria ignoranza in merito, altrimenti la scelta pare più una questione di fede che altro. Va bé, l'unico modo è provarli e farsi delle personali e in quanto tali opinabili idee.Partiamo dal fatto che la gestione dei pacchetti sembra comprendere tre aspetti: il formato specifico dei pacchetti (deb, rpm), i comandi di gestione degli stessi (dpkg, rpm) e l' interfaccia di gestione avanzata (apt, yum).
I sostenitori di Debian naturalmente dicono che la loro distro preferita eccelle in ogni campo, ma la stessa risposta si ottiene dall'altra parte e quindi torniamo sempre ad un punto morto.
Allora vediamo (senza andare troppo nei dettagli) un po' i tre aspetti menzionati.
La base è il formato dei pacchetti, ed entrambe prevedono un sacco di funzionalità. Flamewars sono state scatenate in cui ognuno getta discredito sull'altra. Ad esempio una credenza molto diffusa tra i sostenitori del formato DEB è che il loro formato sia nettamente superiore a RPM, cosa, ahimè, semplicemente falsa. In realtà il formato RPM è più ricco di funzionalità rispetto al DEB, ma questi “plus” sono usati talmente di rado che quasi non se ne fa caso. Ad esempio il formato RPM ha il concetto di “trigger”, che abilita un pacchetto a registrare delle determinate azioni da compiere se un altro pacchetto viene modificato o aggiornato. Oppure il fatto di permettere che le dipendenze vengano soddisfatte da file residenti sul filesystem locale, anche se magari questa procedura è un po' un boomerang dal momento che spesso scatena il “dependency hell” che chiunque nella sua vita ha almeno sperimentato una volta se ha avuto a che fare con le distribuzioni di derivazione RedHat.
La situazione per quanto riguarda gli strumenti di gestione dei pacchetti non è così diversa. Entrambi (dpkg e rpm) forniscono più o meno le stesse funzionalità: installazione e rimozione (ignorando o meno le dipendenze), interrogazione, visualizzazione e così via. Quindi nonostante il formato dei binari sia diverso, le funzionalità spesso sono equivalenti.
Vediamo una semplice tabella:
| dpkg | rpm |
| dpkg --info | rpm -qpi |
| dpkg --contents | rpm -qpl |
| dpkg --install | rpm -i |
| dpkg --list | rpm -qa |
| dpkg --listfiles | rpm -ql |
| dpkg --search | rpm -qf |
| dpkg --status | rpm -qi |
| dpkg --remove | n/a |
| dpkg --purge | rpm -E |
| dpkg --install --force-depends | rpm -i --nodeps |
| dpkg --install --force-overwrite | rpm -i --replacefiles |
La terza componente di un sistema di gestione dei pacchetti è il tool ad alto livello (che si basa sul gestore visto prima e sul formato dei pacchetti) che ha lo scopo di dare uno strumento in grado di semplificare l'installazione e la gestione degli aggiornamenti. Qui, senza dubbio, apt di Debian ha goduto per molto tempo di funzionalità senza rivali rispetto ad altre distribuzioni, che però non sono rimaste ferme al palo: oggi ad esempio yum (o anche urpmi di Mandriva) forniscono oramai funzionalità simili, anche se a mio parere la velocità e la sicurezza paiono ancora far pendere il piatto della bilancia in favore di apt. Ma gli altri stanno arrivando, e probabilmente tra non molto anche questo vantaggio si assottiglierà fino a scomparire.
Anche qui dunque vediamo una tabella che confronta apt, yum e urpmi.
Attenzione: la tabella è “apt-centrica” e quindi destinata ad essere presa come libero riferimento, non è certo destinata a far emergere funzionalità esclusive di apt che gli altri tools non hanno (sicuramente ne hanno a loro volta di esclusivi a cui non esiste un corrispondente apt).
Magari è utile se “saltate” da una distribuzione ad un altra per trovare il comando opportuno da dare. Non prendetela come oro colato, è probabile che questa tabella abbia anche bisogno di una “rinfrescata”.
| APT | yum | urpmi |
| apt-cache search | yum search | urpmq |
| apt-cache show | yum info | urpmq -i |
| apt-cache showpkg | n/a | n/a |
| apt-cache depends | n/a | n/a |
| apt-cache rdepends | n/a | n/a |
| apt-get install | yum install | urpmi |
| apt-get install –download-only | yum --download-only | n/a |
| apt-get remove | n/a | n/a |
| apt-get remove --purge | yum remove | urpme |
| apt-get update | n/a | urpmi.update -a |
| apt-get upgrade | yum update | n/a |
| apt-get dist-upgrade | yum --obsoletes | urpmi --auto-select |
| apt-get source | n/a | n/a |
| apt-get build-dep | n/a | n/a |
| apt-file search | yum provides | urpmf |
E allora cosa ne ricaviamo?
Mah! Personalmente confrontando i sistemi di gestione dei pacchetti attraverso varie distribuzioni di Linux, raggiungo la conclusione che tutti i principali attori del settore sono semplici e fallibili... mortali. Un unico formato condito da una interfaccia unica di gestione sarebbe veramente gradito nel futuro (almeno a me).
Ma poi, fatemelo dire, considerare APT la vera forza di distribuzioni come Debian è sbagliato e riduttivo. I veri motivi del suo successo (e di riflesso in parte anche della pletora di distribuzioni che derivano da essa) sono altri, e ben lontani da qualunque interfaccia utente.
Meno visibili e molto più profondi, ma anche qui molti non sarebbero d'accordo.
Recent comments
9 hours 6 min ago
6 weeks 1 day ago
9 weeks 6 days ago
11 weeks 3 hours ago
12 weeks 6 days ago
14 weeks 3 days ago
14 weeks 3 days ago
14 weeks 3 days ago
14 weeks 3 days ago
14 weeks 3 days ago