Em uma rede de computadores, variando o tamanho dela, muitas vezes o administrador sofre com problemas relacionados à conexão com a internet, por melhor que seja o link, devido ao número de máquinas, ocorre muitas oscilações na conexão, principalmente quando se é necessário fazer atualizações de pacotes Debian
GNU/Linux em cada máquina, onde todas fazem downloads do mesmo local ao mesmo tempo.
Existem várias maneiras para amenizar este problema, uma das mais eficazes e interessante seria criar um mirror (espelho) do repositório do Debian em um servidor na sua rede local, e é isto que vamos fazer. Sendo assim você otimizará sua rede, não tendo mais problemas como perda de sinal e lentidão, ganhando assim mais tempo, pois você estará deixando sua rede mais rápida e eficaz. Também vale ressaltar que você terá um backup de todos os pacotes do repositório do Debian que você espelhar no seu servidor da sua rede local.
Usando o "apt-mirror" para criar o espelho
Para criar o espelho do repositório do Debian usarei a ferramenta "
apt-mirror" e espelharei os repositórios Debian Lenny e Debian Lenny Security, pois foi essa minha necessidade em minha rede.
Segundo o site
packages.debian.org, o "apt-mirror" é uma ferramenta de espelhamento dos fontes APT, pequena e eficiente, onde você poderá construir um espelho de parte ou total distribuição Debian GNU/Linux ou qualquer outro tipo de fonte apt, sendo seus principais recursos:
- Usa uma configuração similar aos apts <sources.list>;
- É totalmente compatível com o pool;
- Suporta download em multithread;
- Suporta várias arquiteturas ao mesmo tempo;
- Remove arquivos desnecessários automaticamente;
- Funciona bem em canais sobrecarregados para a internet;
- Nunca gera um espelho inconsistente mesmo durante um espelhamento;
- Funciona em todos os sistemas compatíveis com POSIX que tenham perl e wget.
Configurações a serem feitas no servidor:
1. Instalando o apt-mirror:
Bom, vamos instalar e configurar o "apt-mirror". Para isso, você deverá abrir o arquivo
/etc/apt/source.list com o editor de textos de sua preferência e adicionar o seguinte repositório, caso não o tenha:
deb ftp://ftp.br.debian.org/debian/ lenny main contrib non-free
Feito isso, deverá executar com poderes de root (usuário administrador) os seguintes comandos:
# apt-get update
# apt-get install apt-mirror
Após sua instalação, iremos partir para sua configuração.
2. Configurando o apt-mirror:
Depois de instalado, o arquivo de configuração do apt-mirror localiza-se no diretório
/etc/apt/mirror.list, para editá-lo abra-o com um editor de textos. O arquivo deverá ficar assim:
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# if you change the base path you must create the directories below with write privlages
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
# set nthreads 20
# set _tilde 0
#
############# end config ##############
# Configuração padrão do apt-mirror. Obs: no set defaultarch, estou setando a arquitetura apenas para i386.
set base_path /var/spool/apt-mirror
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set defaultarch i386
# Repositórios que eu desejei espelhar: Debian Lenny e Debian Lenny Security, incluindo seus fontes.
deb http://ftp.br.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.br.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/debian-security lenny/updates main contrib non-free
deb-src http://security.debian.org/debian-security lenny/updates main contrib non-free
# O que queremos limpar. Obs.: Não entendi bem o conceito deste "clean" mas p/ mim sem essas 2 duas linhas não funcionou.
clean http://ftp.br.debian.org/
clean http://security.debian.org/
3. Usando o apt-mirror:
Após editar esse arquivo, vamos pôr o apt-mirror em ação para criar nosso mirror, você deve ter um bom espaço na partição que contenha o diretório /var/spool/apt-mirror, pois é lá onde ficarão os arquivos e pacotes espelhados. No meu caso como eu fiz espelho do Debian Lenny e Debian Lenny Security, foram baixados 45 G de arquivo. Com poderes de root execute o comando:
# apt-mirror
Bom, agora demorará algumas horas para fazer o download completo e criar seu mirror.
4. Disponibilizando os arquivos na rede:
Vamos disponibilizar os arquivos na rede e para que as máquinas clientes possam usar o mirror, para isso devemos ter o Apache instalado e configurado, então devemos criar o arquivo
/etc/apache2/conf.d/apt-repository.conf e adicionar o seguinte conteúdo no arquivo, ficando assim:
Alias /debian/pool /var/spool/apt-mirror/mirror/ftp.br.debian.org/debian/pool
Alias /debian/dists /var/spool/apt-mirror/skel/ftp.br.debian.org/debian/dists
Alias /debian-security/pool /var/spool/apt-mirror/mirror/security.debian.org/debian-security/pool
Alias /debian-security/dists /var/spool/apt-mirror/skel/security.debian.org/debian-security/dists
<Directory /var/spool/apt-mirror/mirror/ftp.br.debian.org/debian/pool>
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 192.168.1.254/24
Allow from 127.0.0.1/32
Deny from all
</Directory>
<Directory /var/spool/apt-mirror/skel/ftp.br.debian.org/debian/dists/>
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 192.168.1.254/24
Allow from 127.0.0.1/32
</Directory>
<Directory /var/spool/apt-mirror/mirror/security.debian.org/debian-security/pool>
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 192.168.1.254/24
Allow from 127.0.0.1/32
Deny from all
</Directory>
<Directory /var/spool/apt-mirror/skel/security.debian.org/debian-security/dists/>
AllowOverride None
Options Indexes
Order Deny,Allow
Allow from 192.168.1.254/24
Allow from 127.0.0.1/32
Deny from all
</Directory>
Obs.: Não esqueça de substituir <192.168.1.254/24> pelo endereço IP do seu servidor onde está sendo feito o espelho.
Feito isso, reinicie seu servidor Apache com o seguinte comando:
# /etc/init.d/apache2 restart
Seu repositório interno está configurado e pronto para ser usado, bastando apenas configurar os clientes.