Hoje eu finalmente adivinhei o mecanismo pelo qual quando tentei instalar o conjunto de pacotes debian baixados com dependências, por exemplo apt-get install --download-only --assume-yes libssl-dev
, mesmo com o arquivo de status do dpkg vazio (muitos arquivos deb), ainda ao instalar uma vez (e hoje novamente) não consegui instalar: apt-get install path/*.deb
print The following additional packages will be installed: libssl1.1:i386
. (Já tentei obter ajuda descrevendo o resultado, mas as perguntas foram direcionadas, pois sei que entendo a causa incorreta): Como o apt acompanha as dependências do BUILD (fonte)? e https://stackoverflow.com/questions/70491862/how-to-list-download-the-recursive-build-dependencies-of-a-debian-package
Meu palpite era que o pacote libssl1.1
para a arquitetura i386 foi instalado aqui (que eu verifiquei no arquivo de status - era: Status: install ok installed
para ambos amd64
e i386
). Portanto, ao instalar libssl1.1
apt-get
, tentei atualizar isso libssl1.1
para todas as arquiteturas instaladas para esse pacote. Mas ao baixar em um sistema onde não há pacotes para outras arquiteturas, exceto o solicitado na linha de comando, apt-get
baixa apenas uma arquitetura.
Existe alguma opção para instalar pacotes e dependências para apenas uma arquitetura? Não vejo como isso poderia quebrar o sistema se apenas uma arquitetura fosse alterada. (alternativamente para baixar dependências para todas as arquiteturas disponíveis)?
man apt-get:
--arch-only
Only process architecture-dependent build-dependencies. Configuration Item:
APT::Get::Arch-Only.
Contudo:
sudo apt-get install --download-only --assume-yes --arch-only libssl-dev
E: Command line option --arch-only is not understood in combination with the other options
Os pacotes instalados para várias arquiteturas podem compartilhar arquivos, mas esses arquivos devem ser estritamente idênticos. Para evitar problemas com esse requisito, esses pacotes devem ser mantidos em sincronia, portanto, é impossível atualizar um pacote para apenas uma arquitetura se ele estiver instalado para várias arquiteturas.
Para evitar a instalação de pacotes desnecessários do conjunto inicial de pacotes baixados, você pode ser mais específico ao fornecer a lista de pacotes a serem instalados. Por exemplo
instalará apenas pacotes
amd64
e pacotes independentes de arquitetura.Para baixar pacotes para todas as arquiteturas habilitadas, faça um loop sobre eles: