Como baixar um pacote de software com todas as dependências e sub-dependências? [duplicado]

1

Perguntas semelhantes já foram feitas, mas nenhuma delas resolveu meu problema:

Eu preciso instalar um pacote em uma caixa Linux autônoma, especificamente kdbg. Agora eu cansei do comando

sudo apt-get install --download-only kdbg

em uma caixa conectada à internet, mas só baixa o pacote e as dependências que eu não instalei . Algumas dessas dependências (esse comando baixou 117 pacotes no total) tem sub-dependências, e essas sub-dependências têm ainda mais dependências e eu estou indo para um buraco de coelho tentando pescar esses pacotes fora do repositório.

Agora eu tentei usar alguns outros comandos que supostamente baixarão todas as dependências, mesmo aquelas que eu instalei. Eu tentei

  1. apt-get download PACKAGE && apt-cache depends -i PACKAGE | awk '/Depends:/ {print $2}' | xargs apt-get download

e

  1. apt-get download $(apt-rdepends <package>|grep -v "^ ") .

O comando one faz o download apenas das dependências diretas, como as que você encontraria em packages.ubuntu.com, se você fosse procurar kdbg, e o comando dois me forneceria a mensagem de erro:

Can't select candidate version for package <package> as it has no candidate

para vários pacotes diferentes.

Então, para reafirmar minha pergunta, existe uma maneira de eu baixar o kdbg, todas as suas dependências, todas as dependências dessas dependências, e assim por diante? Ou talvez eu esteja usando um dos comandos acima incorretamente?

Obrigado antecipadamente.

    
por biscuitduke 08.05.2018 / 19:29

1 resposta

1

Você precisa executar um comando que resolva automaticamente todas as dependências do arquivo .deb e instale o arquivo .deb e suas dependências ausentes com o mesmo comando. Você precisará de uma conexão de internet ativa (que você possui) e do software instalado para ser atualizado com sudo apt update && sudo apt upgrade para fazer o download de quaisquer dependências ausentes. Abra o terminal e digite:

sudo apt-get download package-name  
sudo apt-get install --simulate ./package-name.deb # dry run doesn't install anything

onde package-name deve ser substituído pelo nome do pacote que você está tentando baixar e package-name.deb deve ser substituído pelo nome do pacote arquivo .deb que você está tentando instalar.

O segundo comando não instala nada, é apenas uma simulação de execução a seco para listar as dependências que precisam ser instaladas na máquina off-line.

    
por karel 09.05.2018 / 03:13