Comentários sobre o artigo de mirrors

Jonas Roberto de Goes Filho goes em goes.eti.br
Quinta Janeiro 20 14:31:56 BRST 2005


Opa,

Bom, eu não vou comentar a baixo. Vou resumir tudo aqui em cima mesmo.

Primeiramente, muito obrigado ao fatalerror pelos excelentes comentários
feitos ao meu artigo. O apelido dele já diz tudo né? (fatalerror) :-)

Mas veja bem o seguinte, a intenção para a Zine não era a de fazer um
manual completo sobre mirrors Debian. e muitas críticas foram feitas
pensando dessa forma. Existe sim a intenção de fazer um texto completo
sobre este assunto mas para publicar em outro lugar. Por esse motivo, o
artigo fica a desejar tecnicamente em muitos pontos aos quais fatalerror
citou. O artigo é apenas um *exemplo* de como fazer e tem como intenção
divulgar este tipo de recurso. Por isso foi feito com rsync, com usuário
mirror etc. Mas vamos ver até onde eu consigo melhorar isso não tornando
o artigo muito extenso.

Muitas das correções as quais fatalerror citou são realmente importantes
e eu vou fazer a tempo para que o artigo seja publicado. Tenho até
quando pra fazer isso?

Bom, eu descobri que estou longe de ser um escritor de verdade. Mas bola
pra frete :-)

Mais uma vez obrigado fatalerror :-) Suas sugestões foram realmente
importantes e produtivas.

Agora, aguardem eu fazer as correções. Bora!

Em Qui, 2005-01-20 às 12:44 -0200, Guilherme de S. Pastore escreveu: 
> Olá, Jonas, pessoal da lista da DebianZine =)
> 
> [ Desculpem pela falta de ânimo pra escrever uma nova historinha a
>   cada comentário, vou usar a mesma. ]
> 
> Eu gostaria de fazer alguns comentários sobre o artigo, que vão além
> de revisão ortográfica e gramatical. Pra facilitar as coisas pra mim
> e pra quem vai analisar os comentários, vai no corpo do e-mail mesmo.
> A versão que eu vou usar pra comentar também já está com o patch de
> correções gramaticais/ortográficas aplicado, btw.
> 
> --------
> 
> > Criando um Mirror Debian
> > Jonas Goes <goes em goes.eti.br>
> > 25 NOV 2004
> 
> Até aqui nenhum problema =D
> 
> > 1. 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.
> 
> Não sei, mas tive a impressão de que este parágrafo puxou a
> distribuição pela Internet muito pro lado de "free beer", hehe.
> 
> Os mirrors também são do repositório oficial do Projeto Debian,
> não só do Debian GNU/Linux.
> 
> Quanto aos mirrors do repositório de segurança, não sei se vale a
> pena mencioná-los, uma vez que eles *não* são oficiais. A única
> fonte oficial de atualizações de segurança é security.debian.org,
> que aponta pra uma máquina só.
> 
> > 2. 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.
> 
> Um repositório é composto de muito mais que .deb's. Mesmo que o "seus
> respectivos códigos-fonte" se refira aos .orig.tar.gz, .diff.gz e
> .dsc, ainda tem muito além disso num repositório funcional.
> 
> > 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
> > 
> > --------------------------------
> > 
> > 3. O que é um mirror Debian?
> > 
> > Um mirror Debian é um espelho ou uma cópia idêntica, parcial ou integral, de um
> > repositório oficial primário do Debian, 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
> 
> Olha a puxada pro lado da free beer de novo =D
> 
> > --------------------------------
> > 
> > 4. 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 agilidade na aquisição dos pacotes através de um mirror local.
> 
> Eu, pessoalmente, preferiria não dizer ao leitor que ele vai,
> necessariamente, querer. Você expõe os pontos positivos e negativos,
> quem decide se quer ou não é ele =D
> 
> By the way, o APT não é exatamente um "sistema de instalação de
> software", hehe =)
> 
> > 5. Do que vamos precisar?
> > 
> > Primeiramente instale os seguintes pacotes:
> > 
> >   # apt-get install debmirror
> >   # apt-get install rsync
> >   # apt-get install apache2
> 
> 1) *MORTE AO APT-GET! USEM APTITUDE!*
> 2) Não acho uma idéia legal você simplesmente mandar o usuário
>    sair instalando pacotes sem saber pra que, sem saber o que
>    fazem, sem ter escolha. Ele poderia querer usar ftp em vez
>    de rsync, apache 1.3 em vez do 2, por exemplo.
> 
> > Um link mínimo com a Internet de 256Kb/s será necessário.
> 
> De onde você tirou esse número? Eu já fiz um mirror de partes
> específicas do archive (15gb, que seriam suficientes, por
> exemplo, pra maioria das empresas) com uma ADSL de 128kbps.
> 
> 1) Acho que não existe número mínimo. Se o cara quer demorar
>    um mês pra montar seu mirror, problema é dele. Você
>    deveria apenas chamar a atenção pro tamanho gigantesco do
>    repositório oficial.
> 
> 2) Você quis dizer 256Kb/s ou 256kbps (kbits per second)?
>    256Kb/s são 2mbps! =)
> 
> > --------------------------------
> >
> > 6. Criando o mirror
> > 
> > Primeiramente execute os seguintes comandos:
> > 
> >  # adduser mirror
> 
> Ele não necessariamente quer um usuário novo pra isso.
> 
> >  # su mirror
> 
> Depois do su ele não é mais root =)
> 
> >  # cd
> >  # mkdir debian
> >  # mkdir debian-non-US
> 
> Resumindo, não acho que você deveria sair cuspindo um monte de
> comandinhos bonitinhos e mandando o usuário digitar cegamente.
> Diga as possibilidades, diga o que cada um faz, diga se ele tem
> opção.
> 
> > Agora será necessário criar dois arquivos scripts para automatizar o processo:
> 
> Mesma coisa. Ele pode querer fazer na mão =D
> 
> > 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/"
> 
> Por que "su mirror"? Ele não pode querer rodar os scripts já como
> usuário mirror? Quem disse que ele quer rsync? Por que
> ftp.br.debian.org? root = :debian? Quem disse que ele não quer
> os sources? Por que ele quer stable, testing e unstable? Por
> que você acha que ele quer contrib e non-free? Por que só i386?
> Ele não pode ter um sparc? ...
> 
> >
> > 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/"
> 
> Os comentários de cima tão valendo pra este também =)
> 
> O usuário mirror tem permissão pra gravar em /usr/local?
> 
> > Dê as permissões corretas para ambos os scripts:
> >
> >  # chmod 700 /usr/local/sbin/mirror
> >  # chmod 700 /usr/local/sbin/mirror-non-US
> >
> 
> O usuário sabe o que 700 significa?
> 
> > --------------------------------
> >
> > 7. Testando o mirror
> >
> > Agora execute os scripts acima para ver se eles funcionam corretamente. Se
> > ocorrerem problemas, verifique se o seu link com a Internet está ok.
> 
> Não me parece razoável chamar o usuário de burro =D
> 
> > Faça um ping em ftp.br.debian.org.
> 
> ftp.br.debian.org não responde a ping
> 
> > Verifique se os pacotes debmirror e rsync
> > estão instalados.
> 
> Se você mandou o usuário instalar no começo do artigo, deve estar, né?
> Usuários não são perfeitos, mas subestimá-los tanto assim é exagero.
> 
> > --------------------------------
> >
> > 8. 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.
> 
> Como ele vai "instalar código fonte" se na chamada do debmirror você
> mandou ele não baixar os sources?
> 
> > 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
> 
> Não era bom explicar o que ele tá fazendo com essa montanha de coisa?
> 
> > 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.
> 
> Eu acho que isso fica melhor localizado na seção de configuração do
> APT, não acha(m)?
> 
> > --------------------------------
> > 
> > 9. 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.
> 
> Explicar o que cada coisa significa pra ele saber como editar seria
> uma idéia razoável, IMHO.
> 
> > 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
> 
> Morte ao apt-get! =)
> 
> > --------------------------------
> > 
> > 10. 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.
> 
> O apt-get faz isso? Eu acho que não. Pra que as máquinas da rede
> teriam outro mirror na sources.list se a intenção de um mirror
> local é, na maioria das vezes, evitar o acesso à Internet pra esse
> tipo de tarefa? Não, o apt não usa nada que não esteja na
> sources.list.
> 
> >  # echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
> 
> E se ele estiver ignorando pings de forma diferente?
> 
> >
> > 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
> 
> 
> Bom, acho que, basicamente, as minhas críticas ao artigo giram em
> torno de uma coisa só: sair cuspindo comando pro usuário digitar
> sem saber o que tá fazendo, sem saber das opções que tem. =/
> 
> Boa sorte!
> 
> --
> Guilherme de S. Pastore (fatalerror)
> <gpastore em colband.com.br>
> _______________________________________________
> Debian-zine mailing list
> Debian-zine em listas.cipsga.org.br
> http://listas.cipsga.org.br/cgi-bin/mailman/listinfo/debian-zine
-- 
[]'s Jonas Goes
http://goes.eti.br



Mais detalhes sobre a lista de discussão Debian-zine