Você tem mais de uma pergunta aqui, e acho que a principal é como lidar com "mas não será instalada". Eu não tenho uma resposta para isso, mas eu posso dizer que se isso acontecer porque você ficou frustrado e forçou uma instalação de algo em algum momento, então você tem que aprender a desacelerar e prestar atenção em especificidades . Simplesmente dizendo, "no final eu termino com bagunça" não fala muito.
Eu venho construindo a partir do código-fonte no linux por mais de uma década e, em termos do gerenciador de pacotes de distribuição, raramente tive problemas. Alguns empacotadores de fontes não fazem um trabalho muito bom de indicar dependências, ou obter .configure
para fazê-lo corretamente, e isso pode ser um grande incômodo, mas não deve levar a problemas de "dependência não atendida" com seu material binário de distribuição, a menos que você tenha feito algo errado com o instalador da distro.
Por exemplo:
librsvg2-dev : Depends: libglib2.0-dev (>= 2.12.0)
2.12 é antigo - não consegui encontrar um histórico de versões online, mas acho ~ 10 anos antigo. Não há como você ter uma versão do Ubuntu que use um slib mais antigo que isso. Então algo deu errado com o seu gerenciamento de pacotes.
Isso não tem muito a ver com o procedimento para as compilações de origem.
I'm coming from java world and...
Então, esse é o mundo C / C ++. O Java é mais monolítico e autocontido, o que torna certas coisas mais fáceis, mas há desvantagens - lembre-se de que o C / C ++ tem algumas vantagens próprias.