Índice das dicas

Um kokar para o Ubuntu e outras distribuições

Por Carlos E. Morimoto em 11 de fevereiro de 2009 às 16h52

29

Se você chegou a usar alguma das versões do Kurumin, deve se lembrar do Kokar, que era um CD com uma cópia off-line dos arquivos usados pelos ícones mágicos. Este é um script que ensina como aplicar o conceito a outras distribuições derivadas do Debian e do Ubuntu.

Ao instalar qualquer pacote, o apt primeiro baixa o arquivo para só depois fazer a instalação. Isso evita problemas causados por problemas na conexão, uma vez que se a conexão cai, ou o processo é interrompido durante o download, a instalação sequer é iniciada. O apt é capaz também de continuar os downloads em caso de interrupção e também de baixar vários pacotes simultaneamente, aproveitando ao máximo a banda da conexão.

Todos os pacotes baixados são salvos na pasta "/var/cache/apt/archives" e continuam lá mesmo depois de instalados.

Complementando, temos a pasta "/var/lib/apt/lists", que armazena as listas de pacotes, que são baixadas ao rodar o "apt-get update".

Sempre que você inicia a instalação de algum pacote, o apt começa verificando o conteúdo da pasta "/var/lib/apt/lists", em busca de informações sobre o pacote solicitado (número da versão atual, nome do arquivo, etc.), verifica se o arquivo já não está disponível na pasta "/var/cache/apt/archives" e, caso não esteja, executa o processo normal de download.

Como deve estar imaginando, é possível fazer backup destas duas pastas de forma a preservar o cache do apt-get depois de reinstalar o sistema, ou mesmo para instalar os pacotes já baixados em outras máquinas, como no caso de alguém que tem banda larga na escola ou no trabalho, mas acessa via modem discado em casa, por exemplo. Basta fazer backup do conteúdo das duas pastas e restaurá-las no outro PC.

Você pode fazer os backups rapidamente usando o tar. Os dois comandos abaixo criam os arquivos "lists.tar" e "archives.tar" no diretório atual:

$ tar -cvf lists.tar /var/lib/apt/lists/
$ tar -cvf archives.tar /var/cache/apt/archives

Você pode notar que não estou usando o parâmetro "z" do tar, que geraria arquivos compactados, pois como o arquivo incluirá pacotes .deb (que já são arquivos compactados), isso só serviria para tornar a criação dos arquivos mais demorada.

Para restaurar os backups na outra máquina, você precisaria apenas executar (dentro do diretório com os dois arquivos) os comandos:

# tar -xvf lists.tar --directory /
# tar -xvf archives.tar --directory /

A opção "--directory /" faz com que os arquivos sejam desempacotados no diretório raiz, fazendo com que os arquivos sejam restaurados nas pastas corretas. Sem isso, eles seriam extraídos dentro do diretório onde o comando foi executado.

Para que os arquivos sejam realmente usados, é importante que as duas máquinas estejam rodando a mesma distribuição (afinal, pacotes do Debian Etch não seriam de muita utilizada no Ubuntu 9.04, por exemplo) e, igualmente importante, devem estar configuradas para utilizarem os mesmos repositórios no arquivo "/etc/apt/sources.list". Uma boa maneira de se certificar disso, é simplesmente incluir o arquivo no backup e restaurá-lo na outra máquina junto com os outros arquivos.

Para facilitar, você pode usar meu script:
http://media.hardware.com.br/press/arquivos/backup-cache-apt.zip

Ele automatiza o processo, permitindo gerar um arquivo ISO, que você pode gravar em CD, ou simplesmente transportar em um pendrive e montar na outra máquina. O arquivo inclui um script de recuperação, que automatiza a restauração. A idéia central é a mesma que era usada no Kurumin, para gerar o CD do Kokar, mas nesse caso aplicada a outras distribuições.

Aqui vai o "código fonte" do script para que você possa estudá-lo:

#!/bin/sh
# Faz backup do backup do apt
# Escrito por Carlos E. Morimoto
echo 'Este script faz backup do conteúdo das pastas /var/cache/apt/archives e
/var/lib/apt/lists/, permitindo salvar o cache do apt-get em um arquivo ISO,
que pode ser gravado em CD e restaurado em outras máquinas.
Este script apenas copia os arquivos, por isso não é necessário executá-lo como
root. Para usá-lo, é necesário ter espaço livre suficiente dentro do seu
diretório home para o equivalente a duas cópias do cache (um para a pasta
temporária e outro para o arquivo ISO).'
echo 'Pressione Enter para gerar o backup'
read pausa
echo "Acessando o home"
cd ~
pwd
sleep 1
echo 'Removendo backups anteriores:
rm -rf apt-cache/
rm -rf apt-cache.iso
'
sleep 1
rm -rf apt-cache/ &>/dev/null
rm -rf apt-cache.iso &>/dev/null
echo 'Criando pasta apt-cache:
mkdir apt-cache
cd apt-cache
'
sleep 1
mkdir apt-cache
cd apt-cache
echo 'Fazendo backup das listas de pacotes:
tar -cvf lists.tar /var/lib/apt/lists/
'
sleep 1
tar -cvf lists.tar /var/lib/apt/lists/ --exclude=lock
echo 'Fazendo backup do cache de pacotes:
tar -cvf archives.tar /var/cache/apt/archives
'
sleep 1
tar -cvf archives.tar /var/cache/apt/archives --exclude=lock
echo 'Fazendo backup do sources.list:
cp /etc/apt/sources.list .
'
sleep 1
cp /etc/apt/sources.list .
echo '#!/bin/sh
# Restaura o cache do apt. Este script deve ser executado como root
# Por Carlos E. Morimoto
if [ "`id -u`" != "0" ]; then
echo "Este script precisa ser executado como root. Digite su - para se logar"
echo "como root e execute o script novamente."
fi
mkdir -p /var/lib/apt/lists
mkdir -p /var/cache/apt/archives
if [ -e "lists.tar" ]; then
echo "Pressione Enter para restaurar os arquivos"
read pausa
tar -xvf lists.tar --directory /
tar -xvf archives.tar --directory /
else
echo "O arquivo lists.tar não foi encontrado. Você esta executando o script"
echo "No mesmo diretorio onde estao os arquivos?"
fi
echo ""
echo "E recomendavel confirmar o conteúdo do arquivo /etc/apt/sources.list,"
echo "que deve ser igual ao arquivo na maquina onde o backup foi feito."
echo "Verifique a cópia do arquivo original, que foi incluida na imagem."
' > restaurar-apt-cache.sh
chmod +x restaurar-apt-cache.sh
echo "Preparando para criar a imagem ISO, seja paciente"
sleep 1
cd ..
mkisofs -pad -l -r -J -v -V "Cache do apt" -o apt-cache.iso apt-cache/
echo "Gerado o arquivo /home/$USER/apt-cache.iso"
echo 'Você pode gravá-lo em CD ou simplesmente copiá-lo em um pendrive ou
outra unidade de armazenamento. Use o script "restaurar-apt-cache.sh"
dentro da imagem para restaurar o cache, como em:
# cd /media/cdrom
# ./restaurar-apt-cache.sh
Ele precisa ser executado como root (ou usando o sudo), para que possa
modificar as pastas do sistema.
Você pode montar o arquivo iso sem precisar queimar o CD usando o comando:
# mount -o loop apt-cache.iso /mnt/cdrom
... como root.'

29 comentáriosPor Carlos E. Morimoto. Revisado 23 de março de 2011 às 16h05

Comentários

 
por luizlmarins (anônimo) em 8 de junho de 2009 às 21h57
Não dá pra fazer isso usando o modo gráfico, simplesmente copiando, colando e restaurando depois, cada pasta em seu lugar?

(Iniciante)
ja fiz por Guilherme (anônimo)
 
por dursistem (anônimo) em 13 de março de 2010 às 10h15
Não consigo instalar o KERNEL 2.6.31.5.Uso o biglinux 4.2 muito bom; só falta a placa ENLTV-FM SAA7134 funcionar.
 
por Paulo Cordeiro (anônimo) em 24 de agosto de 2009 às 13h46
Por favor Flaminde, diga-nos como foi que voçê resolveu o problema. Vamos compartilhar as coisas boas.
Abraços
 
por Flaminde (anônimo) em 17 de julho de 2009 às 19h41
Não precisão responder ja descobri,,,,,,pena ninguem ter se manifestado para me ajudar,,,mas me virei
 
por Flaminde (anônimo) em 14 de julho de 2009 às 22h57
Gostaria de usar o script do marimoto, esse aqui que ta zipado
http://www.gdhpress.com.br/blog/arquivos/backup-cache-apt.zip

puxei e baixei no meu micro na pasta downloads que eu criei na home,,,,, quando eu clico nele ele se descompacta e mostra outra pasta com ele aberto,,,,a questão e o que faço, descompacto onde,,,,como uso esse script e so clicar nele e pronto ou como faço para usar,,,,francamente to na pior quebrando a cabeça e não sei como começar a fazer o cd dos baixados no ubuntu 9.4 ,,,,da para algem me ajudar,,,,,
 
por VictorBastos (anônimo) em 17 de junho de 2009 às 15h13
luizmarins, até dá pra fazer do modo gráfico mas devido a lances de permissão e coisas assim é bem mais simples fazer no terminal mesmo.

abraços,
 
por MaxRaven (anônimo) em 9 de maio de 2009 às 22h22
Ivan, pelo que entendi você quer um editor de textos avançado. O Word faz parte do programa Microsoft Office e, até onde sei, não pode ser baixado pela internet diretamente, apenas comprando nas lojas do ramo. Contudo existe uma versão nacional, já com corretor ortografico para a nova norma e que é bastante usado por aqui, o BrOffice. No link abaixo tem algumas informações e um atalho para o site oficial, onde pode baixar gratuitamente:
Dicas para o OpenOffice e BrOffice
 
por Ivan (anônimo) em 9 de maio de 2009 às 18h26
Poderiam me ajudar tenho o windows istalado mas só tem o Pad não tenho o Word off como posso fazer para coloca-lo em meu computador tem como ser retirado pela Internet e trasportado para o computador.
Estou novo ainda como internauta, agradeço desde já a cooperação dos amigos.
 
por Anderson (anônimo) em 19 de abril de 2009 às 20h02
No caso de uma atualização do sistema, como do Ubuntu 8.10 para o 9.04, posso usar um backup do sistema novo para facilitar essa atualização?
 
por Reginaldo (anônimo) em 16 de abril de 2009 às 19h17
Não seria necessário fazer backup da pasta /usr/lib também?