sábado, 18 de novembro de 2006

Synaptic & Conexão Ruim

Dica para utilização do Gerenciador de Pacotes Synaptic no Ubuntu com conexão instável a Internet

Aqui no Brasil possuimos hoje diversos problemas relacionados à qualidade das conexões ADSL domésticas, em alguns locais muito instáveis e com perdas. Em conexões assim pode se tornar difícil instalar softwares no Ubuntu utilizando o Gerenciador de Pacotes Synaptic, pois ocorre timeout no download dos pacotes .deb e a instalação falha, principalmente com pacotes grandes. O Synaptic exibe um erro parecido com este:


W: Falha ao obter (pacote .deb)
Conexão expirou

E com isso o Synaptic simplesmente desiste de baixar o pacote e você precisa novamente clicar em 'Aplicar' e torcer para que o pacote seja baixado.

Uma maneira de contornar esta tarefa é automatizar esta repetição de tentativas de download, preferencialmente utilizando um timeout pequeno e um número ilimitado de tentativas – assim que ocorre o timeout, tenta novamente – para conexões instáveis, é o jeito.

Isto pode ser feito da seguinte forma:
1. No Gerenciador de Pacotes Synaptic, após selecionar os pacotes que deseja instalar, abra o menu Arquivo -> 'Gerar script de pacotes baixados'; (A tradução do menu tá meio ruim...)
2. Insira um nome para o script, por exemplo download.sh, e clique em Salvar;
3. Abra uma janela de terminal (menu Aplicações -> Acessórios -> Terminal);
4. Abra como super-usuário o script para edição:
sudo gedit download.sh
5. Logo após o comando wget, em todas as linhas que o possuirem, insira os seguintes parâmetros:
-t 0 -c -T 30
6. Salve o documento e feche o editor;
7. Na janela de terminal, vá até o diretório /var/cache/apt:
cd /var/cache/apt/archives
8. Execute como super-usuário o script recém-editado:
sudo ~/download.sh
9. Após a conclusão do download dos pacotes, feche a janela do Terminal;
10. Retornando ao Gerenciador de Pacotes Synaptic, clique agora novamente em Aplicar. Como os pacotes já estarão baixados, ele irá rapidamente instalar.

Parâmetros utilizados no wget:
-t 0 Torna o número de tentativas ilimitado. Sem a especificação do parâmetro '-t' o número de tentativas é 20.
-c Continua o download de um arquivo já parcialmente baixado. Útil caso você queira executar novamente o script de download.
-T 30 Configura o timeout geral para 30 segundos. Ou seja, se alguma consulta DNS demorar mais de 30 segundos, ou se uma conexão TCP demorar mais de 30 segundos para ser estabelecida, ou se em algum ponto do download não forem recebidos dados por mais de 30 segundos, o Wget irá abortar a operação.

É isso. Qualquer dúvida estamos aí.

Nenhum comentário: