Apt-cacher - Sistema de cache para pacotes DEB

Publicado por Andre Luiz Facina em 12/02/2009

[ Hits: 15.117 ]

 


Apt-cacher - Sistema de cache para pacotes DEB



Quando temos vários servidores com a mesma distribuição, é interessante criar um repositório de cache local, de modo que, uma vez que um pacote é baixado de um repositório oficial, todos os outros servidores irão baixar do repositório local, não sendo mais necessário realizar novamente o cansativo download dos pacotes que já foram baixados.

Ainda mais quando trabalhamos com Linux e precisamos realizar o "apt-get upgrade" em todos os servidores, não seria nada agradável ter que baixar da internet os mesmos pacotes que já foram baixados em outro servidor. ;-)

Para isso, mais uma vez o Debian se destaca com a ferramenta apt-cacher, sendo a instalação e configuração muito simples.

Instalação

O ideal é que o apt-cacher seja executado de um servidor que esteja conectado diretamente na internet.

# apt-get install apt-cacher

Configuração

O principal arquivo de configuração é o /etc/apt-cacher/apt-cacher.conf. É importante mudar o parâmetro allowed_hosts, pois por padrão todos os hosts estão autorizados a utilizar o cache.

Um exemplo do arquivo de configuração (sem os comentários).

cache_dir=/var/cache/apt-cacher
admin_email=andre.facina@localhost
daemon_port=3142
group=www-data
user=www-data
allowed_hosts=192.168.1.0/24
denied_hosts=
allowed_hosts_6=fec0::/16
denied_hosts_6=
generate_reports=1
clean_cache=1
offline_mode=0
logdir=/var/log/apt-cacher
expire_hours=0
use_proxy=0
use_proxy_auth=0
limit=0
debug=0
path_map = debian ftp.uni-kl.de/pub/linux/debian ftp2.de.debian.org/debian ; ubuntu archive.ubuntu.com/ubuntu ; security security.debian.org/debian-security ftp2.de.debian.org/debian-security

Uma opção interessante é a "path_map", onde é possível definir aliases para diferentes repositórios.

Ativando o apt-cacher na inicialização:

# vi /etc/default/apt-cacher

AUTOSTART=1

Reiniciar o apt-cacher:

# /etc/init.d/apt-cacher restart

Reiniciar o apache (observe que foi criado um arquivo de configuração para o Apache "/etc/apache2/conf.d/apt-cacher.conf"):

# /etc/init.d/apache2 restart

Utilização

Para as máquinas que utilizarão o cache é preciso editar o arquivo de configuração de repositórios do apt, /etc/apt/sources.list. É preciso remover todos os repositórios e reconfigurá-los na seguinte sintaxe:

deb http://ip_do_servidor_de_cache:porta/apt-cacher/repositorio_debian/debian unstable main contrib non-free

Exemplo:

deb http://192.168.1.1/apt-cacher/ftp.br.debian.org/debian lenny main contrib non-free

Lembra-se da opção "path_map", onde definimos os aliases? Ao invés de passarmos o repositório completo do Debian, podemos apenas passar o alias que definimos no arquivo de configuração, por exemplo:

deb http://192.168.1.1:3142/apt-cacher/security

Agora em outra máquina, após editar o sources.list, execute o "apt-get update" e baixe um pacote, logo em seguida, logue no servidor de cache e veja o conteúdo do diretório /var/cache/apt-cacher, eis aí os pacotes baixados. ;-)

Importando os packages de /var/cache/apt/archives/ para o repositório do apt-cacher

As funcionalidades do apt-cacher não param por aí. Imagine que em seu servidor você já tenha baixado centenas de pacotes, mas sem utilizar o apt-cacher. Então por padrão eles ficaram armazenados no diretório de cache do apt (/var/cache/apt/archives/). É possível importá-los para o repositório do apt-cacher com a ferramenta apt-cacher-import.pl.

Exemplo:

# /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives/ -r

Simples e rápido, ele importará todos os pacotes para o novo repositório.

Gerando relatório de utilização do cache

Também é possível gerar um relatório simples da utilização do cache. Se você deixou a opção "generate_reports=1" no arquivo de configuração (/etc/apt-cacher/apt-cacher.conf), o próprio apt-cacher se encarregará de gerar o relatório todos os dias. Senão pode executá-lo manualmente.

# /usr/share/apt-cacher/apt-cacher-report.pl

Para acessar o relatório digite -> http://ip_do_servidor_de_cache/apt-cacher/report

Para outras informações acesse -> http://ip_do_servidor_de_cache/apt-cacher

O apt-cacher lhe será muito útil se você tiver muitos servidores com a mesma distribuição (Debian, Ubuntu), vai lhe poupar tempo e largura de banda e não veremos o chefe reclamando que a internet está lenta quando estivermos instalando muitos e muitos pacotes nos servidores. :-)

andre.facina:/etc/apt-cacher# apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
Outras dicas deste autor

AIX - Identificando processos zumbis

Pfstat no OpenBSD 4.x

Ajustando o delay de repetição do teclado

Servidor NFS no OpenBSD

Alteração de encoding em sistemas Debian

Leitura recomendada

Rodando Linux no Windows

Corrigindo problema do Acrobat Reader 7.0.9 no Ubuntu

Palestra gratuita: Gerência de riscos em projetos de software

Utilizando o Dosbox

Istanbul - Gravando Área de Trabalho

  

Comentários
[1] Comentário enviado por stilldre em 15/02/2009 - 14:09h

Hoje uso Gentoo no meu notebook, mas já usei Debian e o apt sempre foi uma ferramenta impressionante.

[2] Comentário enviado por shivaisis em 27/04/2009 - 15:00h

Muito bom seu artigo camarada!
me ajudou muito aqui na minha rede!!
viva a comunidade linux!!!!!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts