Reduzindo problemas de atualizações no Debian, Ubuntu e derivados

O apt-get possui uma série de checagens que realmente são interessantes para servidores e ambientes que necessitam funcionar constantemente e tem manutenção feita por especialistas. Porém, para computadores pessoais e de escritório, sua configuração padrão pode não ser a mais eficiente.

[ Hits: 8.737 ]

Por: Bruno Gonçalves Araujo em 11/12/2012


Configurando o APT



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:

  1. Acquire::http::timeout "10";
  2. APT::Immediate-Configure "false";
  3. DPkg::StopOnError "false";
  4. T::Cache-Limit 2200000000;
  5. APT { Get { Fix-Broken "true"; }; };
  6. DPkg { Options {"--force-all";}; };
  7. DPkg { Options {"--abort-after=9999999";}; };
  8. DPkg::Post-Invoke {"dpkg --abort-after=9999999 --configure -a";}

Explicando

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Quinta linha, tentar corrigir automaticamente pacotes quebrados.
  6. 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.
  7. Sétima linha, junto com a terceira linha, evita de toda forma que a atualização seja interrompida, caso alguns pacotes entrem em conflito.
  8. 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.

   

Páginas do artigo
   1. Configurando o APT
Outros artigos deste autor

BigBashView, interface gráfica para o seu shell script

Reduzindo problemas de atualizações no Debian, Ubuntu e derivados - Parte 2

Solucionando o problema de cache em dispositivos de armazenamento USB

Leitura recomendada

Instalando MultiLIB no Slackware 14.2 com Atualizações pelo GSlapt

Debian/APT- Alguns cuidados com os repósitorios

Pós-instalação do Arch Linux

Problema resolvido: VMware Server 1.0.7 rodando no Debian Lenny Linux

Slackware + Gentoo - Dual-boot sem live-CD/USB

  
Comentários
[1] Comentário enviado por fabio em 11/12/2012 - 15:11h

Boa Bruno, realmente muito util. Antes disso eu vivia batendo cabeça dentro do /var/cache/apt/archives com o dpkg -i --force-all.

[2] Comentário enviado por corrosiontears em 12/12/2012 - 06:47h

Postagem fora de série! Considero essencial para quem usa Debian Testing ou Unstable! Obrigado pela dica. Gostaria de permissão para replica-la (com os devidos créditos) no portal SempreUpdate!

[3] Comentário enviado por bigbruno em 12/12/2012 - 17:57h

Pode replicar sim, inclusive se estiver disposto a traduzir, não me dou bem com inglês e acho que é uma boa enviar para sites internacionais.

[4] Comentário enviado por 7agner em 07/05/2013 - 14:13h

As vezes confiamos demais em coisas simples pensando que elas, por serem simples, não podem ser melhoradas. Mas é aquela ideia, não são as pedras grandes que dificultam a caminhada e sim as pequenas. Muito bom saber dessas informações Bruno, valeu por compartilhar!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts