domingo, 29 de junho de 2008

Usando o apt-get offline (para quem usa conexão discada)

Nós que usamos conexão discada, às vezes passamos um aperto na hora de atualizar nosso sistema. Um dia desses, passei por isto. Após o update normal do apt-get, vi que teria que baixar quase 200MB para atualizar meu Ubuntu 8.04, como estava sem paciência de ficar esperando 2 dias para fazer as atualizações, resolvi usar um artigo que havia visto no LinuxDicas, sobre como usar o apt offline. Não lembrava onde estava o link, mas uma busca no Google e ficou tudo resolvido:
http://www.linuxdicas.com.br/article610.html

Realmente a dica é interessante, o uso do apt-get -qq --print-uris upgrade facilitaria as coisas. O problema é que em uma parte do artigo, indicava alterar o arquivo gerado no Windows, usando comandos de DOS, e eu prefiro uma solução onde possa fazer a maior parte no Linux e só usar o Windows ou outro Linux para baixar os pacotes.

Como gosto de Shell Script, resolvi fazer um programinha simples para automatizar a tarefa:

#!/bin/bash
#apt_off ---> Script para utilizar o apt-get offline para quem tem conexão lenta

#1º passo: gerar o arquivo com os links
sudo apt-get -qq --print-uris dist-upgrade >> /tmp/$$apt

#2º passo: deixar só os links e criar o arquivo
cut -f2 -d\' /tmp/$$apt > ~/links.txt

#3º passo: remover o arquivo temporário
rm -f /tmp/$$apt



Desta forma, após rodar o script, tenho a lista com os endereços dos arquivos que precisarei baixar. De posse desta lista entra em cena o wget, se você for usar a Internet Banda Larga de um amigo que já possui Linux, basta o comando abaixo dentro de uma pasta criada para guardar os pacotes:
wget - i links.txt

Se você for usar a internet na casa de um amigo que usa Windows ou num cibercafé, pode baixar o wget para Windows em um destes links:
http://superdownloads.uol.com.br/download/147/wget-windows/
http://www.interlog.com/~tcharron/wgetwin-1_5_3_1-binary.zip


Eu fiz da seguinte forma:
Após baixar o wget, descompactei numa pasta em meu pen-drive, onde copiei o arquivo links.txt, gerado pelo script. No ciber, coloquei o pen-drive, abri o emulador de terminal DOS no Windows, naveguei até o pendrive com um d:, entrei na pasta com um cd: nome da pasta e digitei o comando como faria no Linux:
wget.exe - i links.txt

Os pacotes debian foram baixados no próprio pen-drive, em pouco mais de meia hora já estava em casa. Daí foi só copiar todos os pacotes para /var/cache/apt/archives e atualizar o sistema com um apt-get dist-upgrade

Com um pouco de criatividade este pequeno script pode ser alterado para baixar aplicativos também.