Passiamo oggi al secondo articolo della rubrica LINUX FA SCHIFO, creata per prendere bonariamente in giro il sistema operativo Linux e per farvi riflettere su alcuni aspetti orrendi che potrebbero essere decisamente…migliorabili.
Ah ragazzi quanto mi sono divertito col primo capitolo: non potete sapere quanti fanatici mi hanno dato addosso. Mi chiedo se veramente leggano le premesse o le motivazioni dell’articolo prima di parlare (sicuramente no).
Prima di iniziare, così come ho scritto nel primo articolo della rubrica, ci tengo a ribadire che il seguente contenuto non è da intendere come “ah ma ti stai lamentando di Linux?” ma invece come “mi hai fatto riflettere su un aspetto molto interessante, un aspetto migliorabile, facendomi anche fare 4 risate :D”.
Non prendetela a male, o vi faccio salire quattro calamari dal WC quando meno ve l’aspettate.
“Il programma è disponibile nei seguenti formati..”
Partiamo dalle fondamenta.
Linux offre un ingegnoso sistema di gestione dei pacchetti, che prevede la possibilità di installare/configurare/disinstallare programmi, librerie e tutto il resto. Ora, questo sistema di gestione prevede l’installazione del software tramite un altrettanto ingegnoso sistema di pacchettizzazione, che permette di inserire l’applicazione stessa e tutti i componenti che le permettono di funzionare correttamente dentro un’unico pacchetto.
Ora, questo meraviglioso pacchetto può trovarsi sotto diverse forme e formati, come ad esempio .deb per Debian e derivate, .rpm per RedHat/Fedora e derivate, .ebuild per Gentoo e derivate, .APK per Alpine Linux…e molti altri.
Qual’è il problema? Tanto tutte le distro sono derivate delle principali
Avere tante distribuzioni derivate direttamente (o indirettamente che sia, nel caso delle derivate di derivate) dalle distribuzioni principali, che mi piace chiamare distro capostipiti, è sicuramente un pregio oltre che una comodità. Ma fino a che punto?
Vi spiego un po’ come funziona la vita di uno sviluppatore Linux. Dovete creare una applicazione. A questa applicazione dovrete includere diversi componenti, librerie e dipendenze per farla funzionare con uno specifico tipo di pacchetto. Se la crea per .deb, allora il pacchetto .deb avrà alcuni specifici file per funzionare su Debian e derivate, se la crea per. rpm, dovrà andare ad includere file diversi per renderla compatibile con Red Hat e derivate e così via.
Bello no? No. La vita di uno sviluppatore su Linux si traduce in un inferno dove dover scegliere dove portare il proprio lavoro, con un carico di quest’ultimo che non è certo leggero e che è veramente insensato.
Aspetta, aspetta. Ma la soluzione non è già stata trovata?
Ah! vedo una luce in fondo al pozzo per questo capitolo della rubrica LINUX FA SCHIFO. Si, riesco, è quasi abbagliante!
Sono stati recentemente creati dei pacchetti universali di nome Snap e Flatpack, rispettivamente da Canonical (la società che produce/support Ubuntu) e Red Hat, pacchetti che stanno cercando di creare un unico bundle per la singola applicazione, che permetterà di essere eseguite praticamente su qualsiasi distro Linux.
Perché sarebbe meglio avere un solo formato pacchetto?
Perché? Leggete i seguenti vantaggi e capirete immediatamente.
Di seguito, alcuni vantaggi di Snap:
- Facili da creare: gli sviluppatori non dovranno più andare a collegare dipendenze e librerie con link esterni e riferimenti vari, Snap vi permette di includerli direttamente nel pacchetto dell’applicazione;
- Aggiornamenti automatici: Snap è un servizio cloud, che permette di essere aggiornato automaticamente sulla singola distro Linux grazie ai repository Snap;
- Vari gradi di pacchetti: su Snap troverete pacchetti Stabili, Beta e daily build, distribuite su tre canali specifici e differenziati.
- Sicurezza: le applicazioni sono ora isolate dal resto del sistema, dimenticatevi applicazioni che smettono di funzionare perché un pacchetto (dipendenza di uno specifico programma) si suicida.
Riepilogando: l’applicazione si produrrebbe con un unico formato e sarebbe eseguibile su tutte le distro (quindi meno lavoro per gli sviluppatori), l’applicazione ed i suoi componenti non andrebbero (come spesso accade) ad intaccare/intralciare la distribuzione (a volte capita si creino conflitti con altri pacchetti o che si installi/disinstalli una dipendenza importante per il sistema) e ci sarebbero anche altre comodità centralizzate.
Una soluzione tutto in uno, che si sta espandendo a vista d’occhio e che si spera possa diventare veramente universale.
A presto col prossimo episodio di LINUX FA SCHIFO! 😛