2009
04.08

Na faculdade em que eu trabalho existem várias máquinas em laboratórios que utilizam uma distribuição derivada do Debian, chamada BrLix, pois bem, toda vez que algo precisava ser instalado/atualizado nessas máquinas, lá se vai o pouco que tenho de link de internet…..

Solução? Criar um mirror de pacotes DEBIAN dentro da rede, eu já tenho um mirror de pacotes do slackware aqui pra mim mesmo, logo, preciso apenas alterar um pouco o script e os parametros passados ao RSYNC, então, mãos a obra…

Primeiro problema: Sem maquina sobrando (e sem vontade também) pra instalar um DEBIAN e usar aquelas ferramentas de APT-CACHE etc…..

Solução para isso: RSYNC

Criei o seguinte SCRIPT:

===Aqui começa o script=============================

#!/bin/sh

# Atualiza os arquivos da distro
cd /var/www/htdocs/debian/dists/lenny/

rsync -vazP –delete-after –partial-dir=.partial-dir \
–exclude=Contents-alpha.gz \
–exclude=Contents-amd64.gz \
–exclude=Contents-arm.gz \
–exclude=Contents-armel.gz \
–exclude=Contents-hppa.gz \
–exclude=Contents-ia64.gz \
–exclude=Contents-mips.gz \
–exclude=Contents-mipsel.gz \
–exclude=Contents-powerpc.gz \
–exclude=Contents-s390.gz \
–exclude=Contents-sparc.gz \
–delete-excluded \
–filter=’+ /*’ \
–filter=’- **/*alpha*’ \
–filter=’- **/*amd64*’ \
–filter=’- **/*arm*’ \
–filter=’- **/*armel*’ \
–filter=’- **/*hppa*’ \
–filter=’- **/*ia64*’ \
–filter=’- **/*mips*’ \
–filter=’- **/*mipsel*’ \
–filter=’- **/*powerpc*’ \
–filter=’- **/*s390*’ \
–filter=’- **/*sparc*’ \
–filter=’- **/*debian-installer*’ \
–filter=’- **/*installer-i386*’ \
–filter=’- **/*m68k*’ \
rsync://ftp.br.debian.org/debian/dists/lenny/  .

# Atualiza o pool de apps
cd /var/www/htdocs/debian/pool/

rsync -vazP –delete-after –partial-dir=.partial-dir \
–filter=’+ /*’ \
–filter=’- **/*/*/*alpha*’ \
–filter=’- **/*/*/*amd64*’ \
–filter=’- **/*/*/*arm*’ \
–filter=’- **/*/*/*armel*’ \
–filter=’- **/*/*/*hppa*’ \
–filter=’- **/*/*/*ia64*’ \
–filter=’- **/*/*/*mips*’ \
–filter=’- **/*/*/*mipsel*’ \
–filter=’- **/*/*/*powerpc*’ \
–filter=’- **/*/*/*s390*’ \
–filter=’- **/*/*/*sparc*’ \
–filter=’- **/*/*/*debian-installer*’ \
–filter=’- **/*/*/*installer-i386*’ \
–filter=’- **/*m68k*’ \
–filter=’- **/*etch*’ \
–filter=’- **/*hurd*’ \
rsync://ftp.br.debian.org/debian/pool/ .

===Aqui termina o script=============================

tá aí se alguém tiver o mesmo problema/necessidade, só usar esse script ai, onde

/var/www/htdocs/packages/debian/dists/lenny/ <— arquivos com a lista de pacotes

/var/www/htdocs/packages/debian/pool/ <— pacotes

Outro detalhe:

Eu preciso apenas da arquitetura “i386″, então eu uso a opção

–filter=’- **/*/*/*sparc*’ para dizer que não devem ser baixados pacotes

para a arquitetura sparc, caso você necessite de alguma daquelas arquiteturas que eu exclui

apenas remova o –filter de ambas as partes do script.

====EDITADO====

Isto talvez seja contra a licença GPL ou até mesmo anti-ético de algum ponto de vista, porém, para diminuir ainda mais o tamanho do repositório, podemos adicionar a linha:

–filter=’- ***/*.orig.tar.gz’ \
assim não iremos baixar o fonte dos programas, visto que preciso apenas dos *.deb.

Com esta opção à mais meu repositório passou de 141gb para 91gb….. uma bela economia…

2 comentários

Adicione Seu Comentário
  1. Ae Klein, boa iniciativa. Só faltou colocar o nome da Faculdade, heheh.
    Aproveita e adiciona um comentário ou outro post pra mostrar pra galera como tem que usar esse troço.

  2. hehehe, a forma de usar está em um arquivo “leia-me.txt” dentro da pagina inicial do mirror…..
    Pra quem estuda na FAMEG, pode abrir no browser: http://debian.fameg.edu.br (apenas de dentro da faculdade, não podemos liberar isso para o público senão nosso link de internet já era).

    Para o Senhor, caro mestre Obi Wan Knaesel, se eu achar um HD sobrando crio um mirror de pacotes de CentOS (que podem ser usados em alguns Fedoras seus…) ;-)