[Linux-sbo] [Dicas-L] Criando um Mirror Debian

Dicas-L-Owner em unicamp.br Dicas-L-Owner em unicamp.br
Domingo Dezembro 26 03:51:19 BRST 2004


                 /*/Hackerteen/*/
Cursos de segurança em computação destinado ao
público jovem com uma metodologia moderna e diferente
          http://www.hackerteen.com.br/
----------------------------------------------------------


  Criando um Mirror Debian
  ========================


Colaboração: Jonas Goes <goes em goes.eti.br>


	Introdução
	==========


O sistema operacional Debian GNU/Linux possui mirrors espalhados em vários
pontos da Internet de onde você poderá obter e instalar uma grande variedade
de software livre ao custo de sua conexão. Você também poderá obter
facilmente o código-fonte do software que desejar. Há ainda mirrors
especializados em armazenar pacotes de software com correções de falhas de
segurança.


	O que é um repositório Debian?
	==============================


Um repositório Debian é um conjunto de pacotes ".deb" para instalação
de software e seus respectivos códigos-fonte.

Uma ótima referência em português para entender bem sobre repositórios Debian está em
http://www.debian.org/doc/manuals/reference/ch-system.pt-br.html


	O que é um mirror Debian?
	=========================


Um mirror Debian é um espelho ou uma cópia idêntica parcial ou integral de um
repositório primário Debian oficial estando disponível para utilização em
uma rede.

Uma lista oficial de mirrors Debian que você poderá utilizar gratuitamente
está em http://www.debian.org/mirror/list


	Por que criar e utilizar um mirror Debian local?
	================================================


A principal vantagem, em uma rede privada, é a grande variedade de software, a
velocidade na aquisição dos pacotes e a economia no consumo de Internet.

Se você utiliza sistemas Debian em sua rede local, irá querer desfrutar das facilidades
que o sistema de instalação de software APT (http://www.debian.org/doc/manuals/apt-howto/index.pt-br.html)
disponibiliza e da agialidade na aquisição dos pacotes através de um mirror local.


	O que vamos precisar?
	=====================


Primeiramente instale os seguintes pacotes:


   # apt-get install debmirror
   # apt-get install rsync
   # apt-get install apache2


Um link mínimo com a Internet de 256Kb/s será necessário.


	Criando o mirror
	================


Primeiramente execute os seguintes comandos:


   # adduser mirror
   # su mirror
   # cd
   # mkdir debian
   # mkdir debian-non-US


Agora será necessário criar dois arquivos scripts para automatizar o processo:

O script /usr/local/sbin/mirror contém:


   #!/bin/bash
   su mirror -c "debmirror --method=rsync --host=ftp.br.debian.org --root=:debian --progress --nosource \
   --dist=stable,testing,unstable --section=main,contrib,non-free --arch=i386 --getcontents \
   --postcleanup /home/mirror/debian/"


O script /usr/local/sbin/mirror-non-US contém:


   #!/bin/bash
   su mirror -c "debmirror --method=rsync --host=ftp.br.debian.org --root=:debian-non-US --progress --nosource \
   --dist=stable/non-US,testing/non-US,unstable/non-US --section=main,contrib,non-free \
   --arch=i386 --getcontents --postcleanup /home/mirror/debian-non-US/"


Dê as permissões corretas para ambos os scripts:


   # chmod 700 /usr/local/sbin/mirror
   # chmod 700 /usr/local/sbin/mirror-non-US



	Testando o mirror
	=================


Agora execute os scripts acima para ver se eles funcionam corretamente. Se
ocorreram problemas, verifique se o seu link com a Internet está ok. Faça um
ping em ftp.br.debian.org. Verifique se os pacotes debmirror e rsync
estão instalados.


	Disponibilizando o mirror na rede para utilizar com APT
	=======================================================


Agora vamos disponibilizar os pacotes na rede para serem copiados e no próximo item irei
explicar como configurar o APT para instalar software e código-fonte a partir desde
mirror.


		Via HTTP:
		=========


No apache2, crie o arquivo /etc/apache2/sites-available/mirror-debian com o seguinte conteúdo:


   Alias /debian "/home/mirror/debian/"
   <Directory /home/mirror/debian/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       Allow from all
   </Directory>


Agora crie o seguinte link simbólico:


  ln -s /etc/apache2/sites-available/mirror-debian /etc/apache2/sites-enabled/mirror-debian


Também crie o arquivo /etc/apache2/sites-available/mirror-debian-non-US com o seguite conteúdo:


   Alias /debian-non-US "/home/mirror/debian-non-US/"
   <Directory /home/mirror/debian-non-US/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       Allow from all
   </Directory>


Agora crie o seguinte link simbólico:


   ln -s /etc/apache2/sites-available/mirror-debian-non-US
   /etc/apache2/sites-enabled/mirror-debian-non-US


Torne as configurações ativas no apache2:


  # /etc/init.d/apache2 reload



		Via Local:
		==========


Se o mirror encontra-se no mesmo computador onde você deseja utilizá-lo, basta configurar
o APT apenas. troque a opção http://example.com/debian por file://home/mirror/debian.


	Configurando o APT
	==================


Assim que seu mirror estiver completo, basta adicionar as linhas
necessárias no arquivo /etc/apt/sources.list de todas as máquinas de sua rede que
passarão a utilizá-lo:


		Exemplo:
		========



   ## LOCAL MIRROR
   deb http://example.com/debian stable main contrib non-free
   deb http://example.com/debian testing main contrib non-free
   deb http://example.com/debian unstable main contrib non-free
  
   ## LOCAL MIRROR NON-US
   deb http://example.com/debian-non-US stable/non-US main contrib non-free
   deb http://example.com/debian-non-US testing/non-US main contrib non-free
   deb http://example.com/debian-non-US unstable/non-US main contrib non-free


Edite as linhas acima de acordo com as características do seu mirror.

Feita a configuração, atualize a lista de pacotes que o APT terá disponível para
instalação. Para isso, execute o comando abaixo em cada máquina:


  # apt-get update



	Algumas considerações finais
	============================


É importante que o ping para a máquina que contém o mirror esteja liberado. Caso
contrátio, o comando apt-get update consideraria seu mirror muito lento e daria
prioriade para outros mirrors.


  # echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all


Você poderá adicionar os scripts que criou no cron para manter seu mirror sempre atualizado
automaticamente. Então faça:

   # ln -s /usr/local/sbin/mirror /etc/cron.daily/mirror
   # ln -s /usr/local/sbin/mirror-non-US /etc/cron.daily/mirror-non-US



  Copyright 2004 Jonas Roberto de Goes Filho
  
  Este artigo é software livre; você pode redistribuí-lo e/ou
  modificá-lo sob os termos da Licença Pública Geral GNU conforme
  publicada pela Free Software Foundation; tanto a versão 2 da Licença,
  como (a seu critério) qualquer versão posterior.
  
  A cópia original deste artigo e atualizada pode ser encontrada em
  http://docs.goes.eti.br/artigos/debmirror/debmirror.html

--------------------------------------------------------------------
Colabore com a Dicas-L. Publique seu comentário sobre esta mensagem
em http://www.Dicas-L.unicamp.br/dicas-l/20041226.php
--------------------------------------------------------------------
As mensagens da lista Dicas-L são veiculadas diariamente
para 26213 assinantes.

       Todas as mensagens da Dicas-L ficam armazenadas em 
               http://www.Dicas-L.unicamp.br/dicas-l/

A redistribuição desta e outras mensagens da lista Dicas-L pode
ser feita livremente, desde que o conteúdo, inclusive esta nota, 
não sejam modificados.
--------------------------------------------------------------------


Mais detalhes sobre a lista de discussão Linux-sbo