Qualche tempo fa abbiamo discusso di come installare software offline in Ubuntu . In quella guida, abbiamo spiegato come scaricare i pacchetti in un sistema abilitato a Internet e installarli in un altro sistema che ha una connessione Internet lenta o assente. In questo tutorial vedremo come scaricare pacchetti con dipendenze localmente in Ubuntu, Debian, Pop OS e altri sistemi basati su DEB.
Usando questo metodo, possiamo scaricare un .deb
pacchetto insieme a tutte le dipendenze richieste senza installarlo effettivamente. In questo modo possiamo scaricare pacchetti da un sistema e installarli successivamente nello stesso sistema stesso o in qualsiasi altro sistema che non dispone di connessione a Internet. Possiamo anche scaricare pacchetti per diversi sistemi di architettura. Ad esempio è possibile scaricare i pacchetti a 32 bit da un sistema a 64 bit e viceversa.
Scarica pacchetti con dipendenze in locale in Ubuntu
Possiamo farlo in due metodi. Ho testato questa guida sulle edizioni desktop Ubuntu 16.04 e 18.04 LTS. Ha funzionato perfettamente come descritto di seguito.
Metodo 1:
Questo è il metodo più semplice e diretto rispetto ad altri metodi indicati di seguito.
Per scaricare un pacchetto con tutte le dipendenze, senza installarle, basta eseguire:
$ sudo apt-get install --download-only
Ad esempio, scarichiamo il Vim pacchetto con tutte le dipendenze richieste, senza installarle, utilizzando il comando:
$ sudo apt-get install --download-only vim
Risultato di esempio:
Lettura elenchi di pacchetti... DoneBuilding albero delle dipendenze Lettura informazioni sullo stato... DonePacchetti consigliati:ctags vim-doc vim-scriptsI seguenti NUOVI pacchetti verranno installati:vim0 aggiornato, 1 appena installato, 0 da rimuovere e 82 non aggiornato. È necessario ottenere 1.152 kB di archivi. Dopo questa operazione, verranno utilizzati 2.852 kB di spazio su disco aggiuntivo. Ottieni:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 vim amd64 2:8.0.1453- 1ubuntu1.1 [1.152 kB]Recuperato 1.152 kB in 3 s (372 kB/s)Download completo e in modalità solo download
Come puoi vedere nell'output sopra, abbiamo scaricato il pacchetto Vim con tutte le dipendenze, ma in realtà non l'abbiamo installato.

Tutti i file scaricati verranno salvati in /var/cache/apt/archives
directory.
Basta copiare l'intera cartella della cache su qualsiasi USB o trasferirli via rete su un sistema in cui si desiderava installare i pacchetti.
Per installare i pacchetti scaricati, vai alla cartella della cache e installali come mostrato di seguito.
$ sudo dpkg -i *
Vedere? È così semplice!
Tuttavia, questo metodo funziona solo se il sistema che utilizzi per scaricare i pacchetti non ha il pacchetto principale o le sue dipendenze installate localmente.
Se provi a scaricare un pacchetto che è già installato nello stesso sistema, vedrai un output come quello di seguito.
$ sudo apt-get install --download-only vim Lettura degli elenchi dei pacchetti... DoneBuilding albero delle dipendenze Lettura delle informazioni sullo stato... Donevim è già la versione più recente (2:8.0.1453-1ubuntu1.3).0 aggiornata, 0 appena installata, 0 da rimuovere e 6 non aggiornata.
In questi casi, usa "apt-rdepends
" per scaricare tutti i pacchetti. Se apt-rdepends
non è ancora installato, installalo usando il comando:
$ sudo apt install apt-rdepends
E quindi scarica il pacchetto principale (cioè Vim nel nostro caso) insieme a tutte le dipendenze usando il comando:
$ apt download $(apt-rdepends vim | grep -v "^ ")
Questo comando scaricherà ricorsivamente tutti i pacchetti richiesti.
Per ogni evenienza se hai riscontrato un errore come di seguito:
E:Impossibile selezionare la versione candidata dal pacchetto debconf-2.0 poiché non ha candidature
Prova invece questo comando:
$ apt-get download $(apt-rdepends vim | grep -v "^ " | sed 's/debconf-2.0/debconf/g')
Questo comando scaricherà Vim con tutti i pacchetti necessari e li salverà nella directory di lavoro corrente.
Per installare tutti i pacchetti scaricati, esegui:
$ sudo dpkg -i *
Metodo 2:
Innanzitutto, scarica le dipendenze del pacchetto che desideri scaricare.
Per visualizzare l'elenco di tutte le dipendenze di un pacchetto, ad esempio Python , esegui:
$ sudo apt-cache dipende da python
Risultato di esempio:
pythonPreDepends:python-minimalDepends:python2.7Depends:libpython-stdlibConflicts:Interruzioni:update-manager-coreSuggests:python-docSuggests:python-tkReplaces:python-dev
Scarichiamo il pacchetto Python con le sue dipendenze sul nostro disco locale.
Per farlo, crea prima una directory in cui salvare i pacchetti.
$ mkdir python
Vai alla directory:
$ cd python
E poi esegui:
$ per i in $(apt-cache dipende da python | grep -E 'Dipende|Raccomanda|Suggerisce' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ - e s/'>'/''/); fai sudo apt-get download $i 2>>errors.txt; fatto
Il comando precedente scaricherà il pacchetto Python insieme a tutte le dipendenze richieste e le salverà nella directory di lavoro corrente. Questo comando salverà anche eventuali errori nel errors.txt
file.
Vediamo i file scaricati usando 'ls
' comando:
$ ls
Risultato di esempio:
errors.txtlibpython-stdlib_2.7.11-1_amd64.debpython2.7_2.7.11-7ubuntu1_amd64.debpython-doc_2.7.11-1_all.debpython-minimal_2.7.11-1_amd64.debpython-tk_2.7.11-2_amd64.deb>![]()
Come puoi vedere nell'output sopra, è stato scaricato il pacchetto python con tutte le sue dipendenze.
Basta copiarli sulla tua unità USB e installare i pacchetti Python su qualsiasi sistema offline come mostrato di seguito.
Monta l'unità USB, vai nella posizione in cui hai montato l'unità ed esegui il comando seguente per installare Python.
$ sudo dpkg -i *Lettura consigliata:
- Come scaricare un pacchetto RPM con tutte le dipendenze in CentOS
Scarica pacchetti con dipendenze in locale per un'architettura specifica
Potresti notare che il comando sopra ha scaricato i pacchetti a 64 bit. È perché li sto scaricando dal sistema Ubuntu a 64 bit. Cosa succede se si desidera scaricare pacchetti per sistemi arch a 32 bit? È anche possibile!
Innanzitutto, abilita l'architettura che desideri nel tuo sistema Ubuntu usando il comando:
$ sudo dpkg --add-architecture i386
Se non aggiungi l'architettura, riceverai il seguente messaggio di errore quando proverai a scaricare i pacchetti.
E:Nessun pacchetto trovato
Dopo aver abilitato l'architettura di tua scelta, esegui il comando seguente per scaricare pacchetti specifici relativi all'architettura.
$ per i in $(apt-cache dipende da python:i386 | grep -E 'Dipende|Raccomanda|Suggerisce' | taglia -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); fai sudo apt-get download $i 2>>errors.txt; fatto
Come puoi vedere nell'output sopra, ho aggiunto l'architettura 'i386
' con 'apt-cache
' comando.
Risultato di esempio:
Ottieni:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386 python-minimal i386 2.7.11-1 [28.2 kB] Recuperato 28,2 kB in 1 s (25,8 kB/s) Ottieni:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386> python2.7 i386 2.7.11-7ubuntu1 [220 kB]Recuperato 220 kB in 1s (116 kB/s) Ottieni:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386 libpython-stdlib i386 2.7.11-1 [7.664 B] Recuperato 7.664 B in 0 s (13,3 kB/s) Ottieni:1 http://in.archive.ubuntu.com/ubuntu xenial/main i386 python-tk i386 2.7.11-2 [28.0 kB]Recuperato 28.0 kB in 1s (24.8 kB/s)

Controlliamo i pacchetti scaricati.
$ ls
Risultato di esempio:
errors.txtlibpython-stdlib_2.7.11-1_i386.debpython2.7_2.7.11-7ubuntu1_i386.debpython-minimal_2.7.11-1_i386.debpython-tk_2.7.11-2_i386.deb
Vedere? Il comando precedente ha scaricato solo i pacchetti a 32 bit.
Ora sai come scaricare pacchetti con dipendenze nei sistemi Ubuntu. Questi metodi sono gli stessi per tutti i sistemi basati su DEB.
Lettura correlata:
- Come scaricare le dipendenze ricorsive di un pacchetto in Ubuntu
- Come simulare i comandi di Linux senza modificare nulla nel sistema