pacman não faz o download de dependências com -S e -w?

4

Eu tenho essa coisa estranha acontecendo,

pacman -S -w awesome xorg-xinit xorg-server xorg-server-utils
O

pacman não faz o download de todas as dependências necessárias.

O motivo do download dos pacotes é porque estou criando um repositório local com apenas os pacotes específicos para meus clientes. (em vez de baixar o repositório inteiro, já que a comunidade Arch não quer que você faça isso por causa das limitações de largura de banda , que é respeito)

Agora, os pacotes definidos acima são bem pagos, ele baixa xorg-server e assim por diante, e -w garante que eles não sejam instalados. Mas -S também deve baixar todas as dependências que ele não faz por qualquer motivo.

A saída ao tentar instalar os pacotes acima usando o repositório local mais tarde resulta em:

warning: cannot resolve "xorg-xset", a dependency of "xorg-server-utils"
warning: cannot resolve "xorg-xauth", a dependency of "xorg-xinit"

e a lista continua ... inspecionando o repositório com certeza os pacotes estão faltando e nunca foram baixados em nenhum lugar.

Alguma idéia do motivo? Eu perdi alguma coisa? Logicamente ou com parâmetros?

    
por Torxed 24.02.2016 / 20:16

1 resposta

6

Como apontado por Earnestly e demonicmaniac3 no canal #archlinux do irc, isso ocorre porque pacman não baixe novamente qualquer coisa se já estiver instalada localmente. Mas vai baixar o que você está instruindo especificamente para , o que faz muito sentido pensar nisso.

Isso significa que, se você estiver tentando fazer o download de pacotes destinados a um repositório personalizado / local, verifique se os pacotes que você está prestes a fazer o download não estão instalados localmente ou faça uma destas opções:

Use um banco de dados de pacotes vazio temporariamente / localmente

pacman -y --dbpath /tmp ...

Isso criará a ilusão de que nada é instalado localmente e que todo pacote necessário é baixado. Isso também exige que você faça -y , já que não há uma lista de pacotes principal no banco de dados inventado.

Efetue uma atualização do sistema

pacman -Syuw ...

Isto deve re-instalar / atualizar qualquer pacote que possa estar instalado ou não.
Nota: Não verificado (Eu sei pouco sobre a lógica de pacman e está em um tempo pickle para testá-lo)

Gere uma lista de dependências usando expac

expac -S '%E' -l '\n' xorg-xinit xorg-server-utils ...

Chamar expac no <package string> (todos os pacotes que você está prestes a baixar) fornecerá uma lista de pacotes necessários para executar o download. Você pode usar essa lista para buscar / adicionar à sua seqüência de pacotes já existente, programada para instalação.

Eu prefiro a versão expac desde que se mantenha programaticamente e possa ser usada em muitos scripts, mas a versão rápida e "suja" é simplesmente redirecionar o banco de dados que o pacman verifica.

    
por 24.02.2016 / 21:09