[PATCH] Criando um Mirror Debian

Jonas Roberto de Goes Filho msl em goes.eti.br
Quinta Janeiro 27 10:22:35 BRST 2005


Opa,

Em Qua, 2005-01-26 às 22:44 -0200, Guilherme de S. Pastore escreveu:
> Em Wed, 26 Jan 2005 11:20:39 -0200,
> Jonas Roberto de Goes Filho <msl em goes.eti.br> escreveu:
> 
> > Artigo: Criando um Mirror Debian
> > 
> > Não é um arquivo patch mas um txt com as novas alterações em anexo:
> > 
> 
> Você não aplicou meu patch de revisão ortográfica/gramatical? =)

Ok, agora sim:

http://docs.goes.eti.br/artigos/debmirror.txt
http://docs.goes.eti.br/artigos/debmirror.html

[...]

-- 
[]'s Jonas Roberto de Goes Filho 
http://goes.eti.br
-------------- Próxima Parte ----------
Criando um Mirror Debian
Jonas Goes <goes em goes.eti.br>
25 NOV 2004

1. Introdução

O projeto debian possui mirrors espalhados em vários pontos da Internet,
de onde você poderá obter e instalar uma grande variedade de software livre. 
Você também poderá obter facilmente o código-fonte do software que desejar.

--------------------------------

2. O que é um repositório Debian?

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

--------------------------------

3. O que é um mirror Debian?

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

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

--------------------------------

4. 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.

5. Do que vamos precisar para o nosso exemplo?

Ferramenta para construção e gerenciamento do mirror:

  # aptitude install debmirror


Ferramanta que utilizaremos neste artigo para fazer o download dos
arquivos do mirror:

  # aptitude install rsync

Você poderá optar por outros métodos de download, como ftp,
hftp e http.

Servidor Web que irá disponibilizar o mirror na rede via http:

  # aptitude install apache2

Você poderá disponibilizar o mirror na rede de outras formas como via
ftp e rsh/ssh.

--------------------------------

6. Criando o mirror

Criaremos nosso mirror de exemplo com o usuário mirror no diretório
raiz, /home/mirror/, deste usuário:

Criando o usuário mirror:

  # adduser mirror


Utilizando o sistema com o usuário mirror:

  # su mirror


Acessando o diretório raiz, /home/mirror/, do usuário mirror:

  $ cd


Criando o diretório /home/mirror/debian para armazenar o mirror principal:

  $ mkdir debian


Criando o diretório /home/mirror/debian-non-US para armazenar o mirror non-US:

  $ mkdir debian-non-US


Agora criaremos dois scripts como usuário root 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 --ignore-release-gpg /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 --ignore-release-gpg /home/mirror/debian-non-US/"


Os dois scripts acima farão o download dos arquivos das distribuiçoes
stable,
testing e unstable das seções main, contrib e
non-free via rsync. Com a
opção --nosource, não faremos o download do código-fonte. São apenas
exemplos. Suas configurações irão variar de acordo com o que você
precisa.  Consulte o manual do debmirror para saber mais, ``man
debmirror``.

Dê as permissões de execução e leitura para ambos os scripts:


  # chmod 500 /usr/local/sbin/mirror


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


--------------------------------

7. Testando o mirror

Agora execute os scripts acima para ver se eles funcionam corretamente. 


  # mirror


  # mirror-non-US


--------------------------------

8. Disponibilizando o mirror na rede para utilizar com APT

Agora vamos disponibilizar os pacotes na rede via http utilizando o
apache2 para serem copiados:

Como usuário root, 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 para disponibilizar o diretório
configurado via http:

  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 para disponibilizar também este
diretório via http:

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

Torne as novas configurações ativas no apache2 com o seguinte comando:

  # /etc/init.d/apache2 reload


--------------------------------

9. 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. Mais uma vez aqui, as configurações
irão variar de acordo com as características do seu mirror:

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


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

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:

  # aptitude update


--------------------------------

10. Algumas considerações finais

Você poderá adicionar os scripts que criou no cron para manter seu
mirror sempre atualizado automaticamente. No exemplo abaixo, estou
adicionado um link para cada script do mirror no diretório
/etc/cron.daily
para que sejam executados uma vez por dia:


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


Para começar a instalar software, utilize:

Atualizando a lista de pacotes disponíveis:

  aptitude update


Procurando um pacote:

  aptitude search palavra-chave


Instalando um pacote:

  aptitude install nome-pacote


--------------------------------

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://goes.eti.br/docs/artigos/debmirror.html







Mais detalhes sobre a lista de discussão Debian-zine