Como criar um mirror debian (sarge) utilizando apt-mirror

  • Post author:
  • Post category:Sem categoria

Artigo tirado do Dicas-L da Unicamp.

Colabora??o: Conrado Pinto Rebessi

Aqui na empresa temos diversas m?quinas utilizando Debian Sarge,
e a atualiza??o delas estava se tornando um problema para o
nosso link. Resolvi ent?o criar um reposit?rio apt dentro da
empresa, pesquisando, descobri este software, o apt-mirror,
que me ajudou muito a fazer e a manter o reposit?rio atualizado.

Documentei os passos da instala??o e configura??o, e aproveito
aqui para encaminh?-lo. Espero que seja de alguma valia.

Separei a instala??o e a confiugra??o em 3 etapas, para
facilitar o entendimento:

– Instala??o do Servidor
– Configura??o do Cliente
– Manuten??o do reposit?rio

Parte 1 – Instala??o do Servidor
================================

Adicionar o reposit?rio do apt-mirror ao /etc/apt/sources.list
==============================================================

# /etc/apt/sources.list
deb http://apt-mirror.sourceforge.net/ apt-mirror/

# Atualizar a base do apt
=========================

apt-get update

# Instalar o apt-mirror
=======================

apt-get install apt-mirror

Configurar o /etc/apt/mirror.list com o(s) reposit?rio(s) debian a ser(em) espelhado(s)
No arquivo exemplo abaixo, fa?o mirror do linorg.usp.br e do security.debian.org

# /etc/apt/mirror.list
# apt-mirror configuration file
#
# The default configuration options (uncomment and change to override)
#
#
# set base_path /var/spool/apt-mirror
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
set defaultarch i386
# set nthreads 20
#
deb http://linorg.usp.br/debian/ testing main contrib non-free
deb-src http://linorg.usp.br/debian/ testing main contrib non-free
deb http://linorg.usp.br/debian-non-US/ testing/non-US main contrib non-free
deb-src http://linorg.usp.br/debian-non-US/ testing/non-US main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
#
# Cleaner configuration example
#
# set cleanscript $var_path/clean.sh
#

# What shold we clean up
clean http://security.debian.org/
clean http://linorg.usp.br/

# But exclude this directories
skip-clean http://security.debian.org/doc/
skip-clean http://security.debian.org/tools/
skip-clean http://security.debian.org/debian/doc/
skip-clean http://security.debian.org/debian/tools/
skip-clean http://security.debian.org/debian/project/
skip-clean http://security.debian.org/debian-non-US/project/
skip-clean http://linorg.usp.br/doc/
skip-clean http://linorg.usp.br/tools/
skip-clean http://linorg.usp.br/debian/doc/
skip-clean http://linorg.usp.br/debian/tools/
skip-clean http://linorg.usp.br/debian/project/
skip-clean http://linorg.usp.br/debian-non-US/project/

Feito isto, podemos criar o nosso mirror. Lembrando que o n?mero de pacotes
? grande, ent?o ? bom dispor de um pouco de espa?o na parti??o que cont?m
o diret?rio /var/spool/apt-mirror, no meu caso, ele ocupou um pouco mais de 19Gb

su – apt-mirror
apt-mirror

Agora ? esperar (S?o 19Gb de downloads), numa conex?o razo?vel (512kbps)
isto deve demorar uns 3 ou 4 dias.

Agora ? hora de disponibilizar os arquivos, afinal, algu?m pode querer us?-los
sen?o, para que estar?amos fazendo o reposit?rio? 🙂
Criamos um arquivo chamado /etc/apache/conf.d/apt-repository.conf com o conte?do:

Alias /debian/pool /var/spool/apt-mirror/mirror/linorg.usp.br/debian/pool
Alias /debian/dists /var/spool/apt-mirror/skel/linorg.usp.br/debian/dists
Alias /debian-non-US/pool /var/spool/apt-mirror/mirror/linorg.usp.br/debian-non-US/pool
Alias /debian-non-US/dists /var/spool/apt-mirror/skel/linorg.usp.br/debian-non-US/dists
Alias /security /var/spool/apt-mirror/mirror/security.debian.org
Alias /debian-non-US/dists /var/spool/apt-mirror/skel/linorg.usp.br/debian-non-US/dists


AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all


AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all


AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all


AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all


AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all

Devemos acertar a diretiva “Allow from 172.16.0.0/12” de acordo
com as nossas nescessidades, esta ? espec?fica para a minha rede interna.

Agora reiniciamos o Apache

/etc/init.d/apache restart

Nosso reposit?rio est? pronto para ser usado.
Passamos ent?o a configurar nossos clientes

Parte 2 – Configura??o do Cliente
=================================

Configuramos o /etc/apt/sources.list para apontar para o nosso reposit?rio rec?m-criado

deb http:///debian testing main contrib non-free
deb http:///debian-non-US/ testing/non-US main contrib non-free
deb-src http:///debian testing main contrib non-free
deb-src http:///debian-non-US/ testing/non-US main contrib non-free

deb http:///security testing/updates main contrib non-free

Atualizamos a base de dados do apt

apt-get update

E podemos sair utilizando o apt, por exemplo, fazendo uma atualiza??o do sistema

apt-get upgrade

Parte 3 – Manuten??o do Reposit?rio
===================================

Duas coisas s?o importantes para manter o nosso mirror
“consistente”: Atualiz?-lo constantemente; e Remover os arquivos
antigos. para isto, coloquei esta entrada no /etc/crontab

# /etc/crontab
0 1 * * * apt-mirror /usr/bin/apt-mirror && /bin/sh /var/spool/apt-mirror/var/clean.sh

Algumas observa??es importantes:
================================

– O mirror foi criado num debian sarge, com apache instalado
e pr?-configurado

– Os 19Gb de download s?o apenas na instala??o, nas
atualiza??es, apenas as diferen?as ser?o baixadas

– Foram feitos mirrors dos repositorios linorg.usp.br e
security.debian.org. pode-se utilizar outros repositorios,
apenas fazendo as devidas mudan?as no mirror.list, no
apt-repository.conf, e no sources.list dos clientes.
——————————————————————–