Baixe o pacote via apt para outra arquitetura

15

Atualmente, estou em uma arquitetura amd64; portanto, quando tento apt-get download vlc, ele baixa a arquitetura apropriada para o meu sistema, mas como posso baixar a versão do i386 via apt?

É para exportar para outro sistema que não possui conexão à Internet. Também existe alguma maneira de baixar as dependências a seguir?

Anônimo
fonte
Deseja instalar?
Braiam
Apenas para sua informação, ampliei minha resposta com novos conhecimentos.
Seth

Respostas:

13

Sim, você pode, basta anexar :i386ao comando de download, assim:

sudo apt-get download <package>:i386  

Então para você:

sudo apt-get download vlc:i386  

Não conheço nenhuma maneira de baixar automaticamente dependências de pacotes, build-depmas isso não funcionará no seu caso.

Depois de bisbilhotar um pouco mais a página de manual, descobri que você pode, de fato, usar build-depem uma extensão como esta:

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

O qual fará o download dos pacotes necessários no diretório atual. Note, no entanto, que build-depestá olhando para compilar o pacote a partir do código-fonte, não instalá-lo a partir de um .debdiretório, então ele sugerirá coisas como build-essentiale gccque podem ser necessárias para compilar o vlc, mas não necessariamente instalam a partir de um arquivo .deb.

Pode ser mais fácil listar as principais dependências do vlc com apt-cache:

apt-cache depends vlc:i386  

Se você deseja filtrar apenas depende do uso:

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

Observe que alguns pacotes, como libc6vêm por padrão no Ubuntu, não precisam ser baixados. Se você deseja apenas baixar todas as dependências e lidar com a necessidade ou não posterior, você pode usar este 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  

Isso fará o download de todos os pacotes dependentes, recomendados e sugeridos e redirecionará os erros para no32.txt. Você deve dar uma olhada lá quando terminar, porque alguns pacotes necessários que não possuem versões do i386 (ou seja, não são binários) estarão lá.

Apenas apt-get downloadaqueles.

Observe que esse script não é muito inteligente; ele não leva muitas coisas em consideração; portanto, você pode obter alguns erros tolos; no entanto, ele deve funcionar em geral.

Seth
fonte
E o pacote build-dep: i386?
22414 enedil
O @enedil build-dep baixa e instala, então isso instalaria um monte de pacotes i386 em sua máquina, o que não é o que ele deseja. Veja man apt-get para detalhes.
Seth
Há também um aptitude downloadcomando. Não tenho certeza se o multiarch está ativado.
Faheem Mitha
@FaheemMitha Sim, o aptitude pode fazer quase tudo apt-get.
Seth
0

Uma maneira de fazer isso é usando chroot ou proot no sistema host para criar um sistema de arquivos isolado da arquitetura apropriada. Você pode executar o apt nesse ambiente emulado para instalar os pacotes específicos da arquitetura, como se estivesse em uma máquina dessa arquitetura. Ele roda um pouco mais devagar, pois emula a arquitetura, mas você tem um rootfs que pode implantar no outro dispositivo de uma arquitetura diferente.

ryeager
fonte