Como o ArchLinux lida com conflitos de dependência?

6

No modelo de lançamento tradicional, todos os pacotes em uma versão são compilados com a mesma versão do compilador em relação às mesmas versões de bibliotecas, e a equipe de lançamento escolhe cuidadosamente as versões de software que funcionam juntas para evitar conflitos.

Em uma distro de distribuição como o Gentoo, você constrói cada pacote contra as versões de bibliotecas instaladas em seu sistema, e no caso de dois pacotes dependerem de versões diferentes da mesma biblioteca, você pode instalar essas diferentes versões em diferentes slots. . Então você tem um mecanismo razoável para evitar conflitos.

Recentemente eu descobri o ArchLinux, outra distro com um modelo de lançamento, e é baseado em pacotes binários. Também não parece suportar slots.

Agora estou intrigado. Com o ArchLinux, o que acontece se eu tentar instalar um pacote que depende de uma versão diferente de uma biblioteca que eu instalei? Eu sou forçado a atualizar a biblioteca? Mas então o que acontece se dois pacotes dependem de diferentes versões de uma biblioteca?

Eu olhei várias páginas Wiki do ArchLinux no pacman, mas não encontrei nenhuma explicação por trás dos bastidores.

    
por Gary Chang 10.05.2012 / 14:40

1 resposta

3

Dependências com uma versão explícita são raras no Arch; a maioria dos pacotes simplesmente espera que a versão mais recente de uma dependência seja instalada. (O usuário não deve executar atualizações seletivas, mas manter todos pacotes instalados em sua versão mais recente).

Em casos raros em que duas versões com diferentes ABIs são necessárias, as versões mais antigas podem ser fornecidas como pacotes de nome diferente - por exemplo, libpng (mais recente), libpng14 (1.4), libpng12 (1.2).

    
por 10.05.2012 / 14:57