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

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

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Jonas Goes