Reperire software su Linux: repository e compilazione

18/01/24 | ~ 7 minuti

Bene ma non benissimo

Partiamo dalle note dolenti: uno dei problemi reali delle distribuizioni GNU/Linux è l'impossibilità di procurarsi software settoriali realizzati unicamente per Windows e/o macOS.
Inutile illudersi di rimediare con emulazioni, virtualizzazioni o layer di compatibilità; non funziona così, e nemmeno tutte le alternative possono essere paragonabili ad alcune soluzioni commerciali o "monopiattaforma".
A parte questo però, su Linux è decisamente più facile reperire ed installare software. Vediamo come.

Repository e package manager

Se venite da anni di Windows o macOS, dove anche gli app store sono solo timidi tentativi di scimmiottare ciò che accade sugli smartphone, probabilmente siete abituati ad una tediosa quanto consueta procedura per installare nuovi programmi: motore di ricerca, sito dello sviluppatore (se va bene), download del file exe o dmg ed installazione con "next, next, next", evitando accuratamente la lettura di ogni termine di servizio.

Tale paradigma è, almeno in parte, estreaneo alla filosofia Unix.
La fonte principale di approvvigionamento software nei sistemi operativi GNU/Linux era, ed è ancora oggi, quella dei repository.
Per gli amici una repo (non è ben chiaro se la forma più corretta sia maschile o femminile), è un archivio di pacchetti software, liberamente consultabile online e tendenzialmente sicuro.

Attraverso uno strumento apposito detto package manager (o gestore di pacchetti) è possibile cercare, installare, aggiornare ed eliminare in modo automatizzato gli applicativi e le loro dipendenze.
Insieme al file binario precompilato, infatti, un pacchetto si porta dietro altri componenti standard (generalmente delle librerie) che può condividere anche con differenti programmi.
Sarà compito del gestore di pacchetti individuare le dipendenze da aggiungere o rimuovere dal sistema.

I package manager nascono e sono intesi come strumenti da riga di comando, ma negli anni sono nati tanti frontend grafici (di fatto il concetto è molto simile a quello del Play Store di Google e l'App Store di Apple, seppur in modo decisamente più trasparente). Non chiedetemi di usarli, però.

Compilazione

In cosa consiste, dunque, la compilazione? Si tratta di convertire codice sorgente (scritto in un linguaggio di programmazione cosiddetto "compilato") attraverso un programma compilatore, per trasformarlo in file binari eseguibili dal sistema operativo.

Per portare a termine correttamente una compilazione (o almeno provarci), abbiamo bisogno di:

  1. Compilatore
  2. Dipendenze per la compilazione
  3. Dipendenze del pacchetto
Il requisito principale, neanche a dirlo, rimane il codice sorgente pubblico.

Siamo rimasti sul classico...