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
Opinião dos Leitores
12 Mar 2008, 20:23
como faço pra resolver . Serei mto grato se alguem me ajudar !
17 Jun 2007, 16:39
16 Ago 2006, 08:11
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
03 Ago 2006, 09:21
Mas é possível fazer o repositório usando os cds do Debian ao contrário da internet ?
19 Jul 2006, 03:05
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
[]ś












