Proposta de artigo: Criando um Mirror Debian
Jonas Goes
goes em goes.eti.br
Sábado Dezembro 18 22:23:20 BRST 2004
Opa,
Em Seg, 2004-12-13 às 21:03, Fernando Ike escreveu:
> Em Seg, 2004-12-13 às 15:55, Jonas Goes escreveu:
> > Opa,
> >
> > Em Dom, 2004-12-12 às 17:22, Gustavo Noronha Silva escreveu:
> > > Em Sex, 2004-12-10 às 17:45 -0200, Jonas Goes escreveu:
> > > > Eu gostaria de destacar que eu ainda não terminei. Tenho algumas coisas
> > > > para testar e o que está lá é apenas um *esboço*:
> > > > http://www.goes.eti.br/docs/debmirror.html
> > >
> > > Gostei da idéia do documento. Acho até que você devia colocá-lo na seção
> > > de documentos feitos em casa do Debian Brasil. Eu não sei se ele tem
> > > tamanho pra a Zine, nem tenho competência pra julgar o conteúdo técnico,
> > > porque nunca fiz nada com debmirror =D...
> >
> > Ok.. Assim que eu o tiver pronto, o colocarei na seção de documentos
> > feitos em casa do Debian Brasil.
> >
> > Para o Zine, eu poderia fazer uma versão reduzida se está muito grande.
> > O que acham?
> >
> > >
> > > Que que o resto do povo acha?
> > >
> Está bom (não fiz a revisão ortográfica), seria legal resumir ou
> tirar as partes incompletas do artigo, mexi um pouco e manda p/ lista
> novamente.
O diretório http://docs.goes.eti.br/artigos/debmirror/ contém três
versões reduzidas do artigo sobre mirrors Debian. Basta escolher uma.
Os arquivos que estão neste diretório foram feitos para a Debian Zine.
Eu estou fazendo ainda uma versão bem completa sobre o assunto para
publicar na seção de documentos feitos em casa do Debian Brasil. Isto
fica para ano que vem :)
Abaixo segue um exemplo da versão para a Debian Zine:
Criando um Mirror Debian
Jonas Goes <goes em goes.eti.br>
25 NOV 2004
1. 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.
2. 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
--------------------------------
3. 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
--------------------------------
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.
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.
5. 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.
--------------------------------
6. 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
--------------------------------
7. 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.
--------------------------------
8. 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.
--------------------------------
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:
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
--------------------------------
10. 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://goes.eti.br/docs/debmirror.html
>
> []'s
--
[]'s Jonas Goes
Mais detalhes sobre a lista de discussão Debian-zine