Gli utenti di Ubuntu sono abituati a installare il software aggiuntivo tramite apt, il gestore dei pacchetti che li scarica automaticamente dai repository. Ma... come fare quando il PC è offline e apt non può scaricare i file? Ebbene: in tal caso, ci si arma di un po' di pazienza e si procede a scaricare i pacchetti da un altro PC, per poi installarli offline. Per semplificare le cose al massimo, possiamo usare lo script automatico che abbiamo preparato noi di TurboLab.it, oppure procedere "alla vecchia maniera", prelevando i pacchetti via web. Vediamo allora come scaricare i pacchetti e installare software su un PC offline con Ubuntu 20.04

Script completamente riscritto per rendere la procedura più semplice e maggiormente compatibile

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

nota: questa procedura è "generale", e consente di installare qualsiasi pacchetto offline su Ubuntu. Se però hai bisogno dello specifico build-essential, c'è un modo più rapido:

» Leggi: Come installare build-essential su Ubuntu 20.04 senza connessione ad Internet (PC offline)

Scaricare i pacchetti di apt per installarli offline

Il primo metodo prevede di:

  1. scaricare la nostra collezione di script su una chiavetta USB
  2. generare la lista dei pacchetti da installare sul PC offline
  3. scaricare automaticamente questi file su un secondo PC dotato di collegamento a Internet
  4. installare i pacchetti così scaricati sul PC offline

Questo è sicuramente il mio metodo preferito (ed è quello che utilizzo per pacchettizzare build-essential). Ha il grande vantaggio di gestire automaticamente le dipendenze, ma richiede l'uso di un secondo computer con Ubuntu (qualsiasi versione, anche diversa da quella del PC offline).

Passo 1: Preparare la chiavetta

Per movimentare i file da un PC all'altro ci servirà una chiavetta USB. Iniziamo collegandola al PC dotato della connessione ad Internet.

Se stiamo usando Ubuntu Desktop, la chiavetta verrà automaticamente "montata" e potremo accedervi subito. Se invece stiamo usando Ubuntu Server, dobbiamo svolgere l'operazione manualmente:

» Leggi: Chiavetta USB con Ubuntu: come accedere, leggere e scrivere i file da linea di comando (guida rapida al mount)

A questo punto, apriamo il Terminale e posizioniamoci all'interno della chiavetta. Allo scopo, impartiamo innanzitutto ls -la /media/$USER per vedere la lista dei dispositivi disponibili e scoprire il nome della chiavetta

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Nello screenshot precedente, ad esempio, la chiavetta si chiama Zane. Entriamoci quindi con

cd /media/$USER/Zane

Passo 2: Scaricare lo script nella chiavetta

Scarichiamo ora all'interno della chiavetta il pacchetto che contiene i nostri script:

sudo apt install curl -y && curl -Ls https://turbolab.it/scarica/359 | sudo sh

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Passo 3: Espellere la chiavetta

Ora è tutto pronto. Espelliamo la chiavetta impartendo un comando simile a

umount /media/$USER/Zane

Di nuovo: sostituire a Zane il nome della chiavetta.

Passo 4: Collegare la chiavetta al PC offline

Procediamo ora a collegare la chiavetta USB che abbiamo appena preparato al PC che è attualmente offline, cioè quello sul quale abbiamo effettivamente bisogno di installare alcuni pacchetti.

Ripetiamo quindi la procedura indicata al precedente Passo 1 per "montare" la chiavetta, aprire il Terminale ed entrarci.

Passo 5: Generare la lista dei pacchetti da installare

A questo punto, possiamo lanciare il primo script, ovvero quello che colleziona i nomi dei pacchetti e file che vogliamo installare sul PC offline.

Allo scopo, impartiamo qualcosa di simile a

bash 1-build-list.sh "nomePacchetto1 nomePacchetto2 nomePacchetto3"

Chiaramente sostituiamo ai vari nomePacchetto i reali nomi dei pacchetti che vogliamo installare, separandoli da uno spazio. Massima attenzione a conservare le virgolette!

Nel mio caso, ad esempio, avevo bisogno di installare i servizi necessari a connettere Ubuntu Server alla rete Wi-Fi. Allo scopo, ho impartito:

sudo bash 1-build-list.sh "wpasupplicant wireless-tools"

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando) - IMG_20201129_161153

La procedura genera un file, chiamato packages-to-download.txt, che contiene gli URL dai quali prelevare i pacchetti indicati, e tutte le relative dipendenze.

Passo 6: Ri-collegare la chiavetta al PC "online"

Non appena lo script termina, espelliamo la chiavetta come visto al precedente Passo 3.

Ri-colleghiamola quindi al computer dotato di connessione a Internet, poi ripetiamo la procedura indicata al precedente Passo 1 per "montare" la chiavetta, aprire il Terminale ed entrarci.

Passo 7: Scaricare i pacchetti di apt per usarli offline

Scarichiamo ora i pacchetti appena collezionati lanciando

sudo bash 2-download-list.sh

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Questo script:

  1. legge la lista di URL dal file packages-to-download.txt, ovvero quello generato sul PC offline
  2. scarica tutti i file indicati
  3. li salva nella sottocartella archives

Passo 8: Ri-collegare la chiavetta al PC "offline"

Non appena lo script termina, espelliamo la chiavetta come visto al precedente Passo 3.

Ri-colleghiamola quindi al computer offline e ripetiamo la procedura indicata al precedente Passo 1 per "montare" la chiavetta, aprire il Terminale ed entrarci.

Passo 9: Installare i pacchetti di apt offline

Siamo arrivati "al dunque". Lanciamo l'installazione dei pacchetti scaricati:

sudo bash 3-install-offline.sh

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando) - IMG_20201129_163532

A meno di problemi, dovrebbero così essere installati i pacchetti desiderati. Abbiamo terminato!

Scaricare i pacchetti da web per installarli offline

Come soluzione alternativa, segnalo la possibilità di scaricare i pacchetti di Ubuntu direttamente da web. Il flusso di lavoro sarà dunque il seguente:

  1. recuperare le informazioni necessarie dal PC offline
  2. usare un PC, smartphone o tablet dotato di connessione ad Internet funzionante per scaricare i pacchetti via web
  3. sfruttare una chiavetta USB per copiare il materiale sul PC offline
  4. installare i pacchetti offline

Lavoreremo da Terminale, quindi apriamolo sul PC offline:

» Leggi: Come aprire il terminale di Ubuntu

Iniziamo scoprendo il nome in codice della versione di Ubuntu in uso. Allo scopo, basta impartire lsb_release -c, e otterremo in risposta un nome in codice come focal, eoan, bionic e via dicendo

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Ci servirà conoscere anche l'architettura, quindi impartiamo arch

» Leggi anche: Come scoprire se Linux/Ubuntu/CentOS è a 32 bit oppure 64 bit

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Spostiamoci ora sul dispositivo dotato di connessione ad Internet e apriamo questa pagina:

» Vai: Ubuntu Packages Search

Tramite il campo di ricerca a centro pagina, cerchiamo il pacchetto di nostro interesse, quindi clicchiamo sul link nella pagina dei risultati per aprire il dettaglio.

Da qui, cliccare sul link in alto a destra che indica il nome in codice (quello scoperto un attimo fa) della versione di Ubuntu presente sul PC offline, ovvero quello sul quale desideriamo installare il pacchetto

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Scorriamo la pagina verso il basso, fino alla tabella Download. Da essa, scegliamo il file compatibile con la nostra architettura (così come scoperto in precedenza tramite il comando arch):

  • per architettura x86_64: seguire il link amd64
  • per architettura x86_32: seguire il link i386

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Dalla pagina successiva, otteniamo il file .deb cliccando su uno qualsiasi dei link (mirror) disponibili.

Usiamo ora una chiavetta USB per copiare il file .deb scaricato sul PC offline sul quale desideriamo installare il pacchetto.

A questo punto basta fare doppio click sul file e confermare con Installa per raggiungere l'obbiettivo

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

In alternativa, installiamo il .deb da linea di comando impartendo qualcosa di simile a questo:

sudo dpkg -i /percorso/cartella/file.deb

Il limite di usare questa tecnica è che non è possibile risolvere le dipendenze. Certi pacchetti, infatti, abbisognano di installarne altri (in specifiche versioni) per funzionare: quando siamo connessi ad Internet, apt si occupa di tutto automaticamente. Scaricando i singoli pacchetti da web, invece, questo non è possibile: se il pacchetto che stiamo installando ha delle dipendenze irrisolte, l'operazione fallisce.

Da linea di comando, in particolare, otteniamo un errore simile a dpkg: errore nell'elaborare il pacchetto - problemi con le dipendenze - lasciato non configurato

Ubuntu 20.04: come scaricare pacchetti .deb apt installarli offline (desktop server, linea comando)

Per gestire la situazione è necessario ripetere tutta la procedura per cercare, scaricare e installare manualmente ogni singola dipendenza che il sistema ci segnala come "mancante". Non è divertente, e se ci sono dipendenze-delle-dipendenze diventa un incubo, ma in caso di necessità si fa.