Portage do Gentoo. O que exatamente o comando 'revdep-rebuild' faz?

3

Eu sei que é necessário executar revdep-rebuild após as atualizações do meu Gentoo Linux. Eu também entendo que revdep-rebuild detecta conflitos de bibliotecas compartilhadas e os conserta de alguma forma. Mas eu quero entender mais.

Se (hipoteticamente) eu decidir fazer o trabalho de revdep-rebuild manualmente, como eu faria isso? Como eu selecionaria todos os binários para testar? Como eu verificaria se algum binário em particular está correto? Se houver algum problema com um binário - como eu saberia qual pacote reemergir para corrigi-lo?

    
por lesnik 30.01.2015 / 08:41

2 respostas

3

  1. Primeiro, você pode encontrar todos os executáveis.
  2. Em seguida, use ldd para encontrar *.so dependencies.
  3. Depois disso, se algum objeto compartilhado não existir, use qfile para detectar ebuild que o contém.
  4. Finalmente, reemergir todos os pacotes detectados como quebrados.
por 19.04.2015 / 21:45
1

Por favor, leia a Seção de Raciocínio em Usando a janela Awesome gerente no CentOS 7 . Se a distribuição é binária ou não é irrelevante. Isso ocorre porque o mesmo comportamento pode ocorrer em todas as distribuições.

Os itens 4 a 6 na postagem vinculada são o que revdep-rebuld corrige. O nome fantasia para o item 4 é uma dependência inversa. A única definição que pude encontrar foi nesta entrada da Wikipedia para Inferno de Dependência . Veja Dependências Conflicting e Circular.

revdep-rebuld , abreviação de reconstrução de dependência reversa funciona verificando seus /lib diretórios para .so objetos e, em seguida, compara a versão do S hared O bject para a versão da Biblioteca estática - os arquivos .a , se o static-libs USE Flag foi usado. Ambos são então comparados com a saída de ldd Se houver uma incompatibilidade, o pacote será marcado para reconstrução e, em seguida, reconstruído.

Tudo isso está na resposta do webKnjaz, exceto que revdep-rebuild sempre começa no passo 2, ou seja, ele sempre assume que todos os pacotes estão quebrados, portanto assume que todas as bibliotecas estão quebradas até serem verificadas.

Você também deve saber que revdep-rebuild foi integrado às versões mais recentes de sys-apps/portage no conjunto @preserved-rebuild .

    
por 26.06.2015 / 00:54

Tags