Molto spesso ad incidere sulla scelta di una distribuzione Linux piuttosto che un’altra è il sistema nativo di gestione dei pacchetti; non tanto come tipologia di formato (DEB o RPM) ma come software che permetta di cercare un determinato programma dai vari repository, scaricarlo assieme a tutte le librerie necessarie a farlo funzionare ed installarlo sulla propria macchina.
Non a caso Ubuntu ha deciso di puntare sul sistema APT di Debian considerato da sempre il package manager più completo.
Anche se i package manager nativi molto spesso vengono coadiuvati da strumenti più “amichevoli” come Synaptic, Adept, YUM (Yellow Dog Updater) e YOU (Yast Online Update) si è sempre costretti, a seconda della distribuzione su cui si deve lavorare, a subirne le diverse idiosincrasie.
Con lo Smart Package Manager invece si può finalmente avere uno strumento che può lavorare su qualsiasi distribuzione (Gentoo, Ubuntu, SuSe, Fedora, Debian ecc..) perché può attingere indipendentemente dal formato del pacchetto a qualsiasi repository (chiamati Channel) in circolazione. Questo non significa che se ho un sistema basato sul formato Debian posso attingere dal repository RPM, però se devo installare un software non presente nella distribuzione ufficiale è molto probabile che riesca comunque a trovarlo in altri canali che supportano il mio formato.
Lo Smart PM è stato scritto largamente in Python (con qualche parte in C) e la sua “intelligenza” sta tutta nell’algoritmo usato per risolvere l’annoso problema delle dipendenze dei pacchetti Linux. Ha inoltre un sistema per trovare il mirror più veloce con il minor numero di errori o problemi. Permette i download paralleli, le connessioni multiple al sito, il supporto al controllo del timestamp, il ripristino del download interrotto e la cache dei file supportando i protocolli più usati come: FTP, FTPS, HTTP, HTTPS, SCP, Telnet e LDAP.
Dalle FAQ ufficiali è possibile comprendere qualche informazione tecnica più interessante mentre dalle sue caratteristiche si possono vedere quali sono i Channel (Repository) a cui può attingere. Il programma può lavorare a riga di comando, ad interfaccia a shell o grafica basata su Python. Per gli utenti KDE la notifica degli aggiornamenti dei programma installati può avvenire grazie all’utility KsmartTray.
di Alessandro Carichini - Programmazione.it