O que acontece quando dois pacotes apt dependem de duas versões diferentes do mesmo pacote?

1

Digamos que MyPackage.deb dependa do GTK 2.19, porque é baseado na funcionalidade que foi descontinuada no 2.20. O que acontece quando eu quero apt-get install TheirProgram ou dpkg -i TheirProgram.deb e GTK 2.21+ é uma dependência necessária? O que devo fazer em situações como essas?

    
por kizlink 14.06.2016 / 00:05

1 resposta

3
De um modo geral, as novas versões de bibliotecas que introduzem incompatibilidades inversas devem mudar o seu nome de usuário, e isso será então resulta em um novo nome de pacote para a biblioteca de tempo de execução ( por exemplo para GTK +, libgtk2.0-0 e libgtk2.1-0 ou o que for apropriado). Geralmente, é considerado um erro sério introduzir uma atualização de versão de quebra sem seguir esta regra.

Isso significa que, na maioria dos casos, as duas bibliotecas de tempo de execução podem ser instaladas simultaneamente e também os pacotes dependentes: seu MyPackage.deb extrairia a biblioteca antiga, TheirProgram.deb extrairia a nova biblioteca. Isso é usado no Debian durante transições de biblioteca: quando uma nova versão de uma biblioteca incompatível com versões anteriores é carregada, uma transição é iniciado e até que todos os pacotes dependentes tenham sido reconstruídos, ambas as versões da biblioteca estão disponíveis no arquivo.

É claro que, como regra geral, as distribuições tentam carregar apenas uma única versão de uma biblioteca por vez, então a antiga biblioteca desaparecerá dos arquivos, mas, desde que você a tenha instalado, MyPackage deve continuar trabalhar. Você não terá nenhum suporte de segurança na versão antiga da biblioteca, e não há garantias de que ele continuará funcionando (ou que nenhum outro pacote o quebrará), então, a longo prazo, você seria melhor Corrigindo MyPackage para que funcione com versões mais novas do GTK +.

Se a nova versão do GTK + for compatível com versões anteriores, o nome do pacote não será alterado, mas (com exceção de bugs) a biblioteca de tempo de execução ainda permitirá MyPackage funcionar - assim, instalar TheirProgram forçará a atualização do GTK + , mas MyPackage não deve ser afetado. (Pode imprimir mais avisos de reprovação durante a execução.)

    
por 14.06.2016 / 00:17