Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa - Programação Shell

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

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (701 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
[]ś
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

English for Reading and Listening
Enriqueça o seu vocabulário recebendo diariamente mensagens divertidas em inglês, com áudio em MP3.
Saiba mais

Biblioteca

Desenvolvendo Websites com PHP
Por Juliano Niederauer

O Monge e o Executivo: uma História sobre a Essência da Liderança
Por James C. Hunter

Extreme Programming
Por Vinicius Manhaes Teles

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson

O Vendedor de Sonhos
Por Augusto Cury

Segurança de Redes em Ambientes Cooperativos
Por Emilio Tissato Nakamura e Paulo Licio de Geus

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Utilizando UML e Padrões
Por CRAIG LARMAN

Sistema de Banco de Dados
Por Abraham Silberschatz

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

Redes de Computadores e a Internet
Por James F. Kurose e Keith W. Ross

O Segredo
Por Rhonda Byrne

Os Segredos da Mente Milionária
Por T. Harv Eker

Construindo Sites com CSS e (X)HTML
Por Mauricio Samy Silva

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas

Qualidade de Software
Por Andre Koscianski Michel dos Santos Soares

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson