Scarica il pacchetto tramite apt per un'altra architettura


15

Sono attualmente in un'architettura amd64, quindi quando provo apt-get download vlc, ha scaricato l'architettura appropriata per il mio sistema, ma come posso scaricare la versione i386 tramite apt?

È per l'esportazione in un altro sistema che non ha una connessione Internet, inoltre c'è un modo per scaricare eventuali dipendenze che seguono?


Vuoi installarlo?
Braiam,

A proposito, ho ampliato la mia risposta con nuove conoscenze.
Seth,

Risposte:


13

Sì, puoi, basta aggiungere :i386al comando download, in questo modo:

sudo apt-get download <package>:i386  

Quindi per te:

sudo apt-get download vlc:i386  

Non sono a conoscenza di alcun modo per scaricare automaticamente le dipendenze di un pacchetto, build-depma non funzionerà nel tuo caso.

Dopo aver frugato un po 'di più nella manpage, ho scoperto che puoi, in effetti, usare build-depin una misura come questa:

sudo apt-get build-dep --download-only vlc:i386  

Che quindi scaricherà i pacchetti richiesti nella directory corrente. Si noti, tuttavia, che build-depsta cercando di compilare il pacchetto dal sorgente, non installandolo da un .debquindi suggerirà cose come build-essentiale gccche potrebbero essere necessarie per compilare vlc, ma non necessariamente installarlo da un .deb.

Potrebbe essere più semplice elencare le principali dipendenze di vlc con apt-cache:

apt-cache depends vlc:i386  

Se si desidera filtrare solo in base all'uso:

apt-cache depends vlc:i386 | grep 'Depends'  

Si noti che alcuni pacchetti, come quelli libc6predefiniti , si trovano in Ubuntu, quindi non sarà necessario scaricarli. Se vuoi solo scaricare tutte le dipendenze e gestire se ne hai bisogno o meno, puoi utilizzare questo script:

for i in $(apt-cache depends vlc:i386 | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>no32.txt; done  

Ciò scaricherà tutti i pacchetti dipendenti, consigliati e suggeriti e reindirizzerà eventuali errori no32.txt. Dovresti dare un'occhiata lì quando hai finito, perché alcuni pacchetti necessari che non hanno versioni i386 (cioè non sono binari) saranno lì.

Solo apt-get downloadquelli.

Nota che questo script non è molto intelligente, non tiene conto di molte cose, quindi potresti ricevere alcuni errori sciocchi, tuttavia dovrebbe funzionare in generale.


E il pacchetto build-dep: i386?
enedil,

Download e installazioni di @enedil build-dep , quindi questo installerebbe un sacco di pacchetti i386 sul suo computer, che non è quello che vuole. Vedi man apt-get per i dettagli.
Seth,

C'è anche un aptitude downloadcomando. Non sono sicuro che sia abilitato multiarch.
Faheem Mitha,

@FaheemMitha Sì, aptitude può fare praticamente tutto ciò che apt-getpuò.
Seth,

0

Un modo per farlo è usare chroot o proot sul sistema host per creare un filesystem isolato con l'architettura appropriata. È quindi possibile eseguire apt in quell'ambiente emulato per installare i pacchetti specifici dell'architettura proprio come se si trovasse su una macchina di quell'architettura. Funziona un po 'più lentamente poiché emula l'architettura, ma hai quindi un rootfs che puoi distribuire su un altro dispositivo di un'architettura diversa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.