Debmirror: Criando um repositório Debian na rede local
Imagine você precisando fazer uma nova instalação Debian ou atualizar a distribuição ou um pacote em questão. Você irá depender de seu link com a internet para poder utilizar um dos diversos mirrors públicos existentes para tal tarefa e isso poderá levar um certo tempinho para fazê-lo. Então por quê não criar um mirror local em sua rede? Veja aqui como fazer.
Introdução
Fonte de pesquisa
http://www.lug-untermain.de/howto/debmirror.php
[ Em alemão ] Língua para leitura: [ Linux command line :]
Necessidade
Suponhamos que esta seja uma tarefa que faz parte de seu cotidiano dentro do seu local de trabalho. Bom, acho melhor você ter um repositório em sua LAN para executar tal tarefa. :)
Instalação e configuração do servidor
Instale o pacote "debmirror" disponível em testing ou unstable:
# apt-get install debmirror
Crie um usuário e um grupo que será dono do processo que iremos automatizar para o uso do debmirror:
# groupadd mirror
# useradd -g mirror -d /mirror -c "Debian Mirror" mirror
Crie os diretórios necessários para o repositório.
# mkdir -p /mirror/debian # mkdir /mirror/non-US # chown -R mirror:mirror /mirror
Criando os scripts para a sincronização
Iremos criar agora os script para a sincronização dos repositórios:
Repositório US:
# emacs /usr/local/bin/mirror1.sh
#!/bin/bash
su mirror -c "debmirror /mirror/debian --method=http --progress --nosource --host=ftp.br.debian.org --root=/debian --dist=woody,sarge,sid --section=main,contrib,non-free --arch=i386 --cleanup --getcontents"
su mirror -c "debmirror /mirror/debian --method=http --progress --nosource --host=ftp.br.debian.org --root=/debian --dist=woody,sarge,sid --section=main,contrib,non-free --arch=i386 --cleanup --getcontents"
Repositório non-US:
# emacs /usr/local/bin/mirror2.sh
#!/bin/bash
su mirror -c "debmirror /mirror/non-US --method=http --progress --nosource --host=ftp.br.debian.org --root=/debian-non-US --dist=woody/non-US,sarge/non-US,sid/non-US --section=main,contrib,non-free --arch=i386 --cleanup ?getcontents"
su mirror -c "debmirror /mirror/non-US --method=http --progress --nosource --host=ftp.br.debian.org --root=/debian-non-US --dist=woody/non-US,sarge/non-US,sid/non-US --section=main,contrib,non-free --arch=i386 --cleanup ?getcontents"
Você pode alterar a opção --method por ftp, http ou rsync -e. Leia o manual do debmirror para maiores detalhes.
# man debmirror
Permitindo a leitura escrita e execução somente para o usuário root:
# chmod 700 /usr/local/bin/mirror*.sh
Valeu [ ]'s.