Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Como criar um mirror debian (sarge) utilizando apt-mirror
Colaboração: Conrado Pinto Rebessi
Data de Publicação: 02 de Abril de 2005
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
<Directory /var/spool/apt-mirror/mirror/linorg.usp.br/debian/pool>
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all
</Directory>
<Directory /var/spool/apt-mirror/skel/linorg.usp.br/debian/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
</Directory>
<Directory /var/spool/apt-mirror/mirror/linorg.usp.br/debian-non-US/pool>
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all
</Directory>
<Directory /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
</Directory>
<Directory /var/spool/apt-mirror/mirror/security.debian.org/>
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 172.16.0.0/12
Allow from 127.0.0.1/32
Deny from all
</Directory>
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://<ip_do_mirror>/debian testing main contrib non-free
deb http://<ip_do_mirror>/debian-non-US/ testing/non-US main contrib non-free
deb-src http://<ip_do_mirror>/debian testing main contrib non-free
deb-src http://<ip_do_mirror>/debian-non-US/ testing/non-US main contrib non-free
deb http://<ip_do_mirror>/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.
Veja a relação completa dos artigos de Conrado Pinto Rebessi
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
- Currently 3.01/5
- 1
- 2
- 3
- 4
- 5
Avaliação:
3.0 /5
(555 votos)
Opinião dos Leitores
Guilherme
12 Mar 2008, 20:23
O meu deu erro quando executo o apt-mirror, /binary-i386/packages.gz no such file on directory .
como faço pra resolver . Serei mto grato se alguem me ajudar !
Celso Pimentel Gomes
17 Jun 2007, 16:39
Este howto vale para distros Ubuntu ?
anderson
16 Ago 2006, 08:11
Duas perguntas:
1) se no repositorio original for retirado um arquivo, ele tambe será escluído do meu repositorio. Seria essa a função do clean.sh ?
2) é possível inserir novos pacotes manualmente dentro desse repositório ?
Valew
Andre Sartori
03 Ago 2006, 09:21
Muito legal.
Mas é possível fazer o repositório usando os cds do Debian ao contrário da internet ?
Luciano
19 Jul 2006, 03:05
Cara..
bem interessante esta dica...
é de grande valia...
hj mesmo eu fiz um repositório local aqui, mas foi atravéz dos discos do debian sarge (14 cdś), e com o dkpg-scanpackages...
valeu
[]ś