sexta-feira, 29 de julho de 2011

Workaround para driblar problema na atualização do Ubuntu

Imagine você com uma conexão à Internet que não é das melhores, sem poder atualizar a todo momento sua distribuição Linux, se deparando com uma atualização de 1332 pacotes. Até aí já é assustador, mas imagine ainda que o 1332º pacote apresentou problema no download e simplesmente o sistema não consegue efetivar a atualização. A primeira pergunta que você faz é: o que eu faço agora?


Bom, meu objetivo neste post é apresentar uma situação que ocorreu comigo e o que fiz para resolvê-la.
Eu havia ficado um bom tempo sem atualizar o Ubuntu, devido a minha conexão ser uma verdadeira desgraça. Então, quando a velocidade de transferência de dados parecia estar "aceitável", decidi por realizar a tão desejada atualização do sistema. Mas a vida não é fácil, e foram detectados 1332 pacotes para atualização (dá para notar que havia tempo que eu não atualizava o Linux).
Após cerca de 5 horas baixando os pacotes, o último pacote apresentou um problema no download. Então, o Gerenciador de Atualizações não conseguiu efetivar a atualização. Reconectei a Internet e refiz o processo. Mas algo aconteceu com aquele pacote, pois ele continuava com problema no download e, por causa dele, o sistema não continuava o processo. O sistema exibia uma pequena janela de erro apontando uma URL do repositório do Ubuntu do qual ele tentava baixar o pacote e depois voltava à tela inicial das atualizações. O endereço do pacote que me foi apresentado era:

http://br.archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-font-family-sources/ttf-ubuntu-font-family_0.71.2-0ubuntu3_all.deb

Fiz várias pesquisas, mas não encontrei nenhuma solução. Então, fiz um teste: peguei aquela URL e tentei acessá-la pelo navegador. Dessa forma, consegui fazer o download do pacote manualmente. Neste momento, pensei em uma hipótese sobre a causa do problema, que era muito banal, mas que se confirmou. O Ubuntu mantém uma cache com todos os pacotes que ele baixa para realizar a atualização. A cache, no meu caso, fica no diretório:

/var/cache/apt/archives

Os pacotes que não foram completamente baixados ainda são colocados no diretório:

/var/cache/apt/archives/partial

Visitando este diretório, me deparei com o pacote problemático. E minha suspeita foi confirmada: ao ocorrer algum problema com a conexão, o sistema consequentemente parou de executar o download e deixou um arquivo parcial corrompido, de forma que não conseguiu continuar baixando de onde havia parado. Então, para resolver o problema, foi preciso apagar aquele arquivo do diretório partial/ e copiar o pacote que eu havia feito o download para o diretório archives/, juntamente aos demais que lá já estavam. Ao executar novamente o Gerenciador de Atualizações, o sistema detectou o pacote e concluiu que todas as atualizações já estavam prontas para serem instaladas. Desta maneira, tudo foi instalado e atualizado como esperado.
Veja bem, não era um problema difícil de resolver e nem de complexidade notável. Mas para quem não está acostumado com o Linux, isto poderia se tornar uma dor de cabeça de vários dias. Além do mais, a solução foi relativamente óbvia, mas não foi automática, por isso a chamei de workaround, foi quase uma "gambiarra". :)

Enfim, acredito que este tipo de solução pode ser aplicada a outros problemas da mesma família.
E quando houver um problema, lembre: seja otimista, pense grande e bastante, mexa no sistema sem medo de ser feliz e pesquise sempre que possível. Mas não cometa exageros, pois isso engorda! :P

Até mais!!!

..D..

Nenhum comentário:

Postar um comentário