De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Criando um Mirror Debian
Colaboração: Jonas Goes
Data de Publicação: 26 de Dezembro de 2004
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 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