TL; DR: use /usr/local
ou backports e empacote seu próprio software.
Vou começar com uma generalidade: um lançamento de distribuição é uma unidade coerente. Obviamente existe para apoiar o que seus usuários querem fazer em cima disso, dentro da razão (veja o item 4 no contrato social Debian ) , mas primeiro tem que se sustentar; em particular, as bibliotecas que ele contém estão lá principalmente porque são dependências de algum outro software na distribuição, e os -dev
packages (ou devel
para leitores no lado RPM da cerca) estão lá para que o software empacotado pode ser construído usando a distribuição. Quando você cria softwares sobre uma distribuição, se as bibliotecas incluídas na distribuição atendem aos seus requisitos, isso é ótimo, e você é muito bem-vindo para usá-las. mas se não, você deve evitar massagear a distribuição para atualizá-las.
Alguns ambientes de desenvolvimento já lidam com isso: Python tem seus ambientes virtuais, Ruby tem algo parecido, Java e NPM gerenciam suas próprias árvores de dependência específicas do projeto, etc. O ecossistema C / C ++ não tem nada assim, além de /usr/local
, que pode se encaixar em muitos casos, inclusive quando o compilador é muito antigo.
Na prática, no ecossistema C / C ++, existem algumas soluções viáveis.
-
Se você precisar do limite, você pode usar um sistema "instável" para o seu desenvolvimento. Ele não precisa ser o seu sistema completo (você deve fazer isso apenas se estiver confortável ajudando o Debian a desenvolver o próximo lançamento), um chroot funciona muito bem para isso; Observe também que “instável” se refere à estabilidade do ABI, não à estabilidade geral do sistema.
-
Se você estiver confortável gerenciando suas próprias dependências manualmente, crie seu software e suas dependências (que não estão disponíveis na distribuição) em
/usr/local
(e confira ferramentas como Armazenar para gerenciar versões). -
Se você precisar apenas de algumas dependências atualizadas, considere usar backports . Esta resposta explicará como instalar os backports e até mesmo construir os seus próprios; Isso permitirá que você continue usando pacotes de maneira segura com versões mais recentes do que as que você pode encontrar na versão estável atual. Isso é bastante escalável e muitas organizações mantêm seus próprios repositórios de pacotes portados internamente.