No Gentoo, como recompilar todos os pacotes dependendo de algum outro pacote?

7

Eu cometi um erro e mudei a versão não encadeada do perl para inserida primeiro por unmerge, altere USE flags para incluir ithreads e emerge perl novamente. Agora a maioria dos pacotes, dependendo do perl, está quebrada. Como reconstruí-los?

    
por AlexD 02.10.2011 / 12:02

2 respostas

6

A maneira é usar a função equery do depends para obter a lista de coisas que dependem de um pacote.

# equery depends perl

Se você quiser reconstruir todos eles, tente algo como:

# emerge -a --oneshot 'equery depends perl|awk '{print " ="$1}''

Você terá problemas com isso se tiver pacotes instalados que foram removidos da árvore do portage, portanto, uma sincronização e atualização mundial de antemão é uma boa ideia.

Para este caso específico, você também pode querer olhar para app-admin/perl-cleaner - ele tem recursos específicos para reconstruir módulos perl.

    
por 02.10.2011 / 12:24
3

Tente usar revdep-rebuild (de app-portage/gentoolkit package, o mesmo que equery ). É uma ferramenta que verifica o sistema em busca de dependências quebradas (como a falta de bibliotecas compartilhadas) e reconstrói os pacotes que possuem dependências quebradas. Uma vantagem disso é comparada com O método de Mat é que na maioria dos casos você não precisa reconstruir todos os pacotes que dependem de algum outro.

    
por 02.10.2011 / 15:22