Suponhamos que com o passar do tempo você vai inserindo pacotes para obter determinadas funções que por vezes acabam quebrando o sistema ou causando alguma instabilidade e até insegurança.
Pois bem, minha pergunta é: 1. É possível saber que pacotes estão em um sistema e simplesmente não deveriam estar (não fazem parde do projeto oficial da Distro)? Estão perdidos, órfãos, obsoletos ou mesmo não fazem parte daquela distro?
Se sim, vem a pergunta 2: 2. É possível saber que pacotes são os que funcionariam corretamente na distro? Que pacotes são perigosos, causarão “dependências cíclicas”? “quebra” do APT?
Pergunta 3: 3. Se você precisa de algo específico, pontual, pesquisa na Internet e lá está aquela página dizendo “é só baixar isso aqui…” sudo apt install derreta_meu_micro e aí? Como saber que essa função (sintaxe) ou um PPA, é potencialmente perigoso? Há alguma lista para pesquisa prévia?
E finalmente: 4. Por que os gerenciadores de pacotes, APT, PacMan, YUM, Entropy… etc. permitem que você baixe qualquer coisa, qualquer pacote “de fora” dos repositórios oficiais?!
Isso depende do gerenciador de pacotes – na maioria dos casos ele denuncia os “vilões”.
É sim, se as bibliotecas e versões de dependências estiverem em dia. Os pacotes “perigosos” são os que possuem dependências que não são automaticamente instaladas ou não estão disponíveis. Na maioria das vezes, um apt --fix-broken install resolve (no caso dos Debian-like).
Sendo em sua maioria tecnologias de código aberto, falhas e pacotes perigosos são corrigidos rapidamente. É muito difícil que pacotes ou repositórios nocivos fiquem no ar por muito tempo, ainda mais considerando que, no caso do Ubuntu, a maioria dos PPAs se hospeda no Launchpad da Canonical.
Qual seria o sentido de impedir o usuário de instalar o que ele quiser? Não teríamos nada além do ambiente gráfico. Quem usaria um computador com o qual não podes fazer nada?
Depende do seu gerenciador de pacotes. Geralmente é possível comparar a saída de um comando que lista os pacotes instalados com os disponíveis no repositório oficial, ou manualmente ou com um comando.
Costumam aparecer avisos antes da instalação. APT na verdade é bem mais quebradiço que outros gerenciadores de pacotes justamente por “exigir” uma configuração bem certa, e muitos erros de “Ubuntu/Debian/Derivado não atualiza” francamente nunca vi equivalente em outros gerenciadores de pacotes.
Não tem bem uma lista com pesquisa prévia (fora que você teria confiar em quem faz a lista do mesmo jeito que você confia em quem faz o PPA). Assim como qualquer coisa na internet, há critérios que podem ser seguidos. Preferir PPAs ou comandos mencionados na fonte do programa, procurar saber se o PPA é mencionado em sites movimentados, etc… Ajuda também um pouco saber o básico da linguagem do terminal (shell) e com o que um comando “legítimo” nela se parece, como sudo apt-add-repository ppa:kisak/kisak-mesa.
Isso não impediria muita coisa, já que os programas ainda têm a opção de simplesmente largar os arquivos por aí nas posições certas. Serviria apenas para dificultar os usos legítimos disso (atualizações offline, teste de versões mais novas de um programa, programas que o usuário quer mas não estão nos repositórios oficiais, etc.) e para dificultar desfazer as alterações causadas pela instalação de um programa, que o usuário passaria a fazer manualmente (ou com um script, que seria mais complexo e mais difícil de entender).
Fora que, mesmo nos casos em que a distribuição intencionalmente dificulta isso, o que acontece é que usuários apenas montam e compartilham entre si programas auxiliares para facilitar (como os AUR helpers do Arch Linux). Pacotes de terceiros muitas vezes são úteis demais para se abrir mão.