O gerenciador de pacotes
APT possui uma série de checagens. E realmente são interessantes para servidores e ambientes que necessitam funcionar constantemente e têm manutenção feita por especialistas, porém, considero que para computadores pessoais e de escritório, sua configuração padrão não é boa.
Justificativas principais
1. Em servidores, a quantidade de pacotes instalados é muito pequena quando comparamos aos Desktops, além disso, em geral, são pacotes muito testados e com grau de importância muito alto.
Enquanto Desktops, normalmente, possuem mais de mil pacotes instalados, entre eles uma grande parte são de pouca importância e passam por poucos testes. Muitas vezes, uma atualização é interrompida por um conflito em um simples
Widget no Desktop, que praticamente não tem relevância alguma para o uso do sistema.
Vale lembrar que, por vezes, ao chegar a este pacote conflitante, o sistema interrompe no meio a atualização e dependendo dos pacotes que foram atualizados antes e dos que ficaram faltando atualizar, o sistema torna-se inutilizável. Até mesmo danificando o modo gráfico ou o boot do sistema, o que para a maior parte dos usuários acaba forçando a reinstalação completa da distribuição.
2. Dependência circular, é bastante típico, principalmente nos repositórios do
Ubuntu, que ao atualizar de uma versão para outra, um pacote x dependa do pacote y ser atualizado primeiro, porém, o pacote y também necessita que o pacote x já esteja atualizado.
Esse problema, geralmente, é resolvido indo ao
/var/cache/apt/archives e executando um:
# dpkg -i --force-all
Porém, para um usuário normal isso é algo muito complexo, e para os que sabem da solução, ainda é algo chato de resolver, pois não é raro isso acontecer com diversos pacotes.
Como utilizar a alteração
Lembre que esta alteração irá modificar a configuração de todo o apt-get, isso reflete na instalação, remoção e atualização de pacotes não apenas no uso direto do apt-get, mas também pelo Synaptic, Muon, Central de Programas e todas as interfaces gráficas que utilizem o apt-get.
Esta alteração pode ser feita manualmente com as informações a seguir, ou instalando o seguinte pacote:
O pacote informado pode ser instalado em qualquer versão do Debian, Ubuntu ou seus derivados, pois a única coisa que faz é adicionar o arquivo
/etc/apt/apt.conf.d/18bigtweaks, que adiciona configurações ao
apt-get, com as linhas que irei comentar a seguir.
Código:
- Acquire::http::timeout "10";
- APT::Immediate-Configure "false";
- DPkg::StopOnError "false";
- T::Cache-Limit 2200000000;
- APT { Get { Fix-Broken "true"; }; };
- DPkg { Options {"--force-all";}; };
- DPkg { Options {"--abort-after=9999999";}; };
- DPkg::Post-Invoke {"dpkg --abort-after=9999999 --configure -a";}
Explicando
- A primeira linha reduz o timeout para 10 segundos, quando se utiliza repositórios complementares, algumas vezes eles saem do ar e o "apt-get update" fica esperando por muito tempo, um servidor que não responder em 10 segundos é por que está com problemas e não vejo motivos para aguardar mais que isso.
- Segunda linha, desativa a configuração de configuração imediata, permite que o apt-get primeiro extraia todos os arquivos e depois faça as configurações.
- Terceira linha, normalmente quando o dpkg encontra problemas para instalar um pacote, o processo do apt-get é interrompido, com essa linha, o processo de atualização continua mesmo se ocorrerem erros.
- Quarta linha, um problema que ocorre algumas vezes ao ter muitos repositórios configurados, com esse novo valor, provavelmente esse problema nunca mais irá acontecer.
- Quinta linha, tentar corrigir automaticamente pacotes quebrados.
- Sexta linha, força o dpkg a ignorar erros. Pode parecer um exagero, mas essa configuração é válida apenas quando o dpkg é chamado pelo apt-get, ele já faz uma série de checagens antes da instalação ou atualização ser executada. Dessa forma, ignorar os erros apenas do dpkg me pareceu trazer mais soluções do que problemas.
- Sétima linha, junto com a terceira linha, evita de toda forma que a atualização seja interrompida, caso alguns pacotes entrem em conflito.
- Oitava linha, ao final da atualização é executado o comando dpkg --configure -a, que é uma solução genérica para a maior parte dos problemas que ocorrem no dpkg.
Esta configuração foi divulgada em alguns fóruns a mais de 1 mês, e até agora todos os relatos foram positivos.
Espero que a mesma seja útil para os frequentadores do VOL.