Apt-cacher - Sistema de cache para pacotes DEB

Publicado por Andre Luiz Facina em 12/02/2009

[ Hits: 15.149 ]

 


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

Migrando para o Ext4, o novo file system Linux

MultiTail - Comando tail em múltiplos arquivos no Linux

Renomeando arquivos com caracteres especiais

Replicação no LDAP com slurp

Servidor NFS no OpenBSD

Leitura recomendada

ChronoPlus - Cronômetro para seu GNU/Linux

Configurar o background no gnome-terminal

Habilitando o modo leitura no navegador Chromium

SLOG - Software Livre Oeste Goiano

Problemas ao compilar o MPlayer no Slackware Linux 12.1

  

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