[PATCH] Criando um Mirror Debian
Jonas Roberto de Goes Filho
msl em goes.eti.br
Quinta Janeiro 27 10:58:17 BRST 2005
Opa,
Em Qui, 2005-01-27 às 09:39 -0200, Guilherme de S. Pastore escreveu:
> Em Thu, 27 Jan 2005 09:22:35 -0200,
> Jonas Roberto de Goes Filho <msl em goes.eti.br> escreveu:
>
> > Opa,
> >
> > Em Qua, 2005-01-26 às 22:44 -0200, Guilherme de S. Pastore escreveu:
> > > Você não aplicou meu patch de revisão ortográfica/gramatical? =)
> >
> > Ok, agora sim:
> >
>
> Valeu =)
>
> Só um primeiro comentário antes de ler o texto com cuidado... você
> poderia escrever Debian com a primeira letra maiúscula no primeiro
> parágrafo? =)
Ok, feito!
[...]
--
[]'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