Sobre a remoção de programas no Manjaro:
Os programas são criados com suporte a diversas funcionalidades. Vamos pegar como exemplo o Okular, programa para mostrar os PDFs. Se você baixar o código fonte e quiser compilar você mesmo, vai ver na documentação que você pode habilitar diversas funcionalidades, como por exemplo: exibir também arquivos .ps, adicionar suporte a arquivos criptografados, exibir também arquivos .md, ativar texto para fala, etc…
Algumas dessas funcionalidades vão depender de outros pacotes, então quanto mais funcionalidades você ativar, mais “amarrado” fica o o seu pacote. Até aqui tudo bem, porque nós só falamos de um pacote. Mas o desenvolvedor que vai “empacotar” precisa decidir isso para todos os pacotes que ele vai disponibilizar. Por filosofia do Manjaro, eles querem que o usuário tenha todas as funcionalidades disponíveis para os pacotes. Então já dá perceber que todos esses pacotes ficam amarrados uns nos outros, e quando você decide desinstalar um, uma avalanche de dependências acaba se criando.
A “solução” geralmente é quebrar um programa em dezenas de pacotes e criar um meta-pacote com todos eles. Claro que isso dá bastante trabalho e é feito apenas para os programas muito grandes. Outra solução, dessa vez definitiva, é definir um grupo mínimo de dependências e deixar que o usuário escolha se quer funcionalidades extras. Essa é a filosofia do Gentoo com sua principal qualidade, as “USE Flags”. O efeito colateral é que o usuário tem que compilar os programas. Mas é possível, inclusive já fiz, de querer desinstalar uma dependência de um programa, mas continuar com o programa instalado: é só desativar a funcionalidade específica daquele programa, recompilar, depois excluir a dependência que o sistema continua inteiro.
Por isso eu torço o nariz quando alguém reclama desse emaranhado de dependências, como o DIO fez ao querer desinstalar o Video4Linux. A soluçao é muito mais complicada do que aceitar a realidade dos fatos: vários programas usam dependencias para exibir vídeos, e o empacotador pode escolher ativar ou não essa funcionalidade. Se não tiver, vai faltar, mas se tiver, não vai conseguir desinstalar a dependência. Então ele tem que escolher desinstalar apenas o pacote que faz interface com o usuário, não o meta-pacote, para não derrubar o sistema inteiro.
É difícil conseguir ter essa visão, pois começa a virar uma interface entre programador / usuário. Poucos tem tempo/vontade de chegar nesse nível de detalhe. Criticar esse tipo de emaranhado de dependências é fácil, como se existisse uma solução miraculosa que os desenvolvedores não quiseram fazer. Mas a realidade é dura quando começa-se a pensar em como resolver esse tipo de situação.