#howto - installare software da archivio
La maggioranza del software disponibile nel panorama GNU/Linux è reso disponibile attraverso i package manager, sotto forma di pacchetti facilmente installabili oppure ancora attraverso i nuovi formati Flatpak e AppImage.
Ma spesso, ancora, nei nostri gruppi molti utenti chiedono supporto su come installare applicativi da archivi tar.gz o di altro genere. Vediamo come ci si può approcciare a tale necessità.
Il problema della mancanza di uno standard
Il problema fondamentale di questo genere di installazioni è la mancanza di uno standard. Spesso i siti stessi (che siano siti web veri e propri o che siano dei repository git) rilasciano delle istruzioni per installare i loro pacchetti, pertanto il primo approccio sicuramente resta quello di informarsi tramite canali ufficiali e seguire le guide scritte dagli sviluppatori stessi.
Un concetto prerequisito: il PATH di sistema
Il PATH di sistema è una particolare variabile (detta variabile d’ambiente) impostata all’avvio in cui vi è una lista di percorsi dove si possono trovare gli eseguibili che devono essere richiamati solo tramite nome.
Si può interrogare in qualunque momento il proprio PATH tramite l’istruzione:
echo $PATH
L’output dovrebbe essere di questo tipo:
/usr/local/sbin:/usr/local/bin:/usr/bin
Dove ogni path è diviso dall’altro tramite carattere :
.
I programmi che vengono installati normalmente finiscono in una della cartelle elencate dal PATH. Alcuni casi particolari aggiungono nuovi percorsi nel path.
Cartella con l’eseguibile e vari altri file
Molti software son archiviati direttamente in una cartella con l’eseguibile (in genere disponibile in una sotto-cartella bin
oppure nella directory padre). Se non vi sono istruzioni di installazione oppure script di installazione inclusi si può cercare di installare seguendo lo schema che seguirà:
La prima domanda che ci si deve porrà in questo caso è dove voler installare questo software, se in un posto raggiungibile da tutto il sistema oppure solo dall’utente.
Caso esempio NomeSoftware
Supporremo, per facilitazione, che il software scompattato abbia questa forma:
CartellaSoftware
├── config/
└── eseguibile
Dove la cartella di config (o le cartelle di config, generalmente config, icons, bin etc…) servono al programma per trovare i propri file di configurazione, mentre il file eseguibile (spesso porta il nome stesso del software) rappresenta per l’appunto il file di esecuzione del software.
Si supporrà anche che il suo nome sia NomeSoftware
.
Installare il software per il sistema
Installare un software per tutto il sistema significa sostanzialmente non inserirlo nella propria Home, generalmente i due path usati per software da terze parti sono:
/usr/share
: normalmente utilizzata per le applicazioni installate dal package manager o da software di cui si ha a disposizione il codice sorgente/opt
: per i software di qualunque tipo
Il software scompattato va copiato sotto una delle cartelle descritte sopra, ad esempio opt
:
mv CartellaSoftware /opt
Va quindi creato un link dall’eseguibile ad una della cartella coperte dalla variabile PATH
, per consentire che il software sia raggiungibile ovunque. Una della cartella coperte da PATH è in genere /usr/bin
:
ln -s /opt/CartellaSoftware /usr/bin
Manca però il launcher, ovvero l’icona che appare da menù start…
Creare un launcher per il sistema
Esiste un articolo sul sito che descrive la creazione del file di launcher qui, sostanzialmente si tratta di un file, con estensione .desktop
, con questa forma:
[Desktop Entry]
Name=NomeSoftware
Type=Application
Comment=Descrizione
Terminal=false
Exec=/opt/CartellaSoftware/eseguibile
Icon=/opt/CartellaSoftware/icone/icona
Categories=categoriasoftware
Keywords=parole;chiave
Per rendere eseguibile il file, e non solo dentro un menù:
chmod +x NomeSoftware.desktop
Sostituendo i vari valori, dovreste poter poi “cliccare” questo file da gestore dei file e si dovrebbe quindi avviare il software. Per essere visto nel menù da tutti gli utenti il file deve essere copiato nella cartella /usr/share/applications
:
mv NomeSoftware.desktop /usr/share/applications
Supponendo che il file sia stato chiamato NomeSoftware.desktop
.
Ora il file dovrebbe essere disponibile nel menu.
Installare il software per l’utente
Un software è installato solo per l’utente nel caso in cui risieda nella propria home.
In questo caso ognuno ha un po’ le sue regole, normalmente si crea una cartella nascosta (ovvero preceduta da .
) con il nome stesso del software e si mettono i file al suo interno:
mv CartellaSoftware $HOME/.CartellaSoftware
Per non sporcare le cartelle di sistema, invece di fare un collegamento ad una di quelle si può pensare di creare una propria cartella dove posizionare i collegamenti di tutti gli eseguibili, sotto la home, ed includere nel PATH solo quella.
La cartella .local/bin
Generalmente si preferisce creare una cartella locale con tutti gli eseguibili più che aggiornare il PATH per ogni programma installato. Normalmente questa cartella nel sistema non esiste, in tal caso si può creare scrivendo:
mkdir $HOME/.local/bin
È possibile ora proseguire facendo il collegamento simbolico con l’eseguibile del software appena scaricato:
ln -s $HOME/.CartellaSoftware/eseguibile $HOME/.local/bin
Solo la prima volta, è necessario anche aggiornare il PATH.
Aggiornare la variabile di PATH
Apriamo il file di startup della shell, in base alla shell questo file è differente:
- Per bash si trova in
$HOME/.bashrc
- Per zsh si trova in
$HOME/.zshrc
- Per fish si trova in
$HOME/.config/fish/config.fish
, ma la sintassi sarà differente da quella scritta qua sotto.
In un punto a piacere del file (magari verso la fine) è necessario scrivere:
export PATH=$PATH:$HOME/.local/bin
È possibile anche ovviamente inserire il path della cartella del software stesso e non quella generica creata prima, ma generalmente si preferisce questo approccio per rendere più semplice aggiornare.
Creare un launcher per l’utente
Come già spiegato in precedenza, il launcher è quel file che permette sia di avviare a doppio click i software che di essere facilmente trovato ed indicizzato nel menù di sistema. Si crei quindi un file con estensione .desktop
con un contenuto simile a questo:
[Desktop Entry]
Name=NomeSoftware
Type=Application
Comment=Descrizione
Terminal=false
Exec=/home/nomeutente/.CartellaSoftware/eseguibile
Icon=/home/nomeutente/.CartellaSoftware/icone/icona
Categories=categoriasoftware
Keywords=parole;chiave
Per rendere eseguibile il file, e non solo dentro un menù:
chmod +x NomeSoftware.desktop
Sostituendo adeguatamente nomi e percorsi.
Quindi si copi il file nella cartella $HOME/.local/share/applications
cp NomeSoftware.desktop $HOME/.local/share/applications
Supponendo che il file sia stato chiamato NomeSoftware.desktop.
Ora il file dovrebbe essere disponibile nel menu.
Altri casi
In altri casi gli archivi hanno file di installazione inclusi al loro interno oppure riproducono 1:1 un file system tipico di linux, suggerendo quindi dove posizionare i vari file.
Se l’argomento può interessare o se riscontrate altre tipologie di archivio che non riuscite ad installare venite a chiedere supporto sui nostri gruppi Telegram. Scriveremo un articolo ad hoc.