Eu não posso responder por que o PBI não foi bem-sucedido, mas posso responder por que as bibliotecas compartilhadas são preferidas no Linux.
O principal argumento é segurança, que se houver uma vulnerabilidade em uma biblioteca comumente usada, somente essa biblioteca terá que ser atualizada, e não todos os aplicativos que usam essa biblioteca (obrigado para compatibilidade ABI). Isso também significa que (se você ficar na maior parte dos repositórios principais e PPAs (no caso do Ubuntu)), você não precisa ter 4 versões diferentes de uma biblioteca instalada apenas porque seus aplicativos foram compilados contra essas versões (como o Windows). , onde você provavelmente teria versões diferentes das bibliotecas .NET instaladas, ou versões diferentes do tempo de execução visual C ++ instaladas).
No entanto, pode haver alguns casos em que os aplicativos não sejam forçados a usar a versão do sistema das bibliotecas e possam usar sua própria versão. Por exemplo, o Chromium depende de muitas bibliotecas que estão presentes na maioria dos repositórios da distribuição. Em circunstâncias normais, os aplicativos seriam compilados para que as bibliotecas usadas fossem as compiladas pela distro. No entanto, no Ubuntu (pelo menos), o Chromium é compilado com sua própria versão de bibliotecas, porque:
- Usar a versão do sistema de bibliotecas significa que o Chromium teria que ser testado para cada versão do Ubuntu.
- Na maior parte, o Chromium já usa as versões mais recentes das bibliotecas, o que significa que a probabilidade de haver uma vulnerabilidade é muito menor.
Quanto ao argumento de espaço em disco, você poderia argumentar que a instalação de uma versão em debootstrap
do Debian Jessie requer menos de 1 GB de espaço em disco, tornando-o ótimo para cartões SD menores. O Windows, por outro lado, requer pelo menos vários gigabytes de espaço em disco.
Em relação ao software antigo, você pode compilar o aplicativo estaticamente e ter a maioria das dependências autocontidas. No entanto, como sua distro pode não ter versões estáticas das bibliotecas disponíveis (na maioria das vezes, o Debian e o Ubuntu não), você precisará compilar essas bibliotecas por conta própria para obter as versões estáticas dessas bibliotecas.
Por fim, um dos princípios do Unix é que cada aplicativo faz apenas uma coisa e é bom nisso. Se aplicativos e bibliotecas estivessem vinculados estaticamente, eles poderiam ser considerados (indiretamente) fazendo muitas coisas.