<chapt id="ftparchives">Os repositórios FTP do Debian.

<sect id="dirtree">O que são todos aqueles diretórios nos repositórios FTP do Debian?

<p>Os programas que foram empacotados para o &debian; estão disponíveis em
várias árvores de diretórios em cada espelho do Debian.

<p>O diretório <tt>dists</tt> contém as "distribuições", e é o modo canônico
de acessar as versões Debian atualmente disponíveis (e versões antigas).

<sect id="dists">Quantas distribuições Debian existem no diretório <tt>dists</tt>?

<p>Normalmente existem três distribuições, a distribuição "stable" (estável),
a distribuição "testing" (teste) e a distribuição "unstable" (instável). Às
vezes,  também há a distribuição "frozen" (paralizada).

<sect id="codenames">O que são todos esses nomes, como "slink", "potato", etc.?

<p>São apenas "codinomes". Quando uma distribuição Debian está
em estágio de desenvolvimento, ela não possui um número de versão, e sim um
codinome. O objetivo desses codinomes é facilitar o espelhamento das
distribuições Debian (se um diretório de verdade como <tt>unstable</tt>
de repente mudasse seu nome para <tt>stable</tt>, muita coisa teria que
ser baixada novamente).

<!-- XXX update for new distros -->
<p>Atualmente, <tt>stable</tt> é uma ligação simbólica para <tt>potato</tt>
(isto é, &debian; &release;), <tt>testing</tt> é uma ligação simbólica para
<tt>woody</tt> e <tt>unstable</tt> é uma ligação simbólica para
<tt>sid</tt>, o que significa que <tt>potato</tt> é a atual distribuição
estável e <tt>woody</tt> é a atual distribuição teste. <tt>sid</tt> é sempre
a distribuição instável (veja <ref id="sid">).

<sect id="frozen">E sobre a "frozen" (paralizada)?

<p>Quando a distribuição teste está madura o suficiente, ela é paralizada,
significando que nenhum código novo é admitido, somente ajustes e consertos
no código, se necessários. Além disso, uma nova árvore teste é criada no
diretório <tt>dists</tt>, com um novo codinome. A distribuição paralisada
passa por alguns meses de testes, com atualizações intermitentes e ciclos de
testes. Mantemos um registro de bugs na distribuição "frozen" que pode impedir
que um pacote seja lançado. Uma vez que o número de bugs desça até níveis
aceitáveis, a distribuição "frozen" torna-se estável e é lançada, e a
distribuição estável anterior torna-se obsoleta (e é movida para o arquivo).

<sect id="oldcodenames">Que outros codinomes foram usados no passado?

<p>Outros codinomes que já foram usados são: <tt>buzz</tt> para a versão 1.1,
<tt>rex</tt> para a versão 1.2, <tt>bo</tt> para as versões 1.3.x, <tt>hamm</tt>
para a versão 2.0, e <tt>slink</tt> para a versão 2.1.

<sect id="sourceforcodenames">De onde vieram esses codinomes?

<p>Até agora eles vieram de personagens do filme "Toy Story" da Pixar.
<list>
  <item><em>buzz</em> (Buzz Lightyear) era o astronauta;
  <item><em>rex</em> era o tiranossauro;
  <item><em>bo</em> (Bo Peep) era a menina que cuidava da ovelha;
  <item><em>hamm</em> era o porquinho-cofre;
  <item><em>slink</em> (Slinky Dog) era o cachorro de brinquedo;
  <item><em>potato</em> era, claro, o Mr. Potato (Sr. Batata);
  <item><em>woody</em> era o vaqueiro.
</list>
<!--
  more info in http://www.pixar.com/feature/toystory/toystory.html 
  or better yet http://us.imdb.com/M/title-exact?Toy%20Story%20(1995)
  or actually:
    http://us.imdb.com/Title?0114709 for TS1
    http://us.imdb.com/Title?0120363 for TS2
  we shouldn't put the links in, Pixar needs no additional propaganda
-->
<!--
  characters not used from Toy Story (yet):
    - The Green Plastic Army Men
    - Andy (the kid)
    - Etch (Etch-a-Sketch) (the blackboard)
    - Snake
    - Robot
    - Scud (Sid's dog)
  and additional characters from Toy Story 2, also not yet used:
    - Jessie (the Yodelling Cowgirl)
    - Zurg (the Emperor)
    - Wheezy (the penguin)
    - Hannah (owner of Jessie)
    - Stinky Pete the Prospector (the old fat guy)
    - Mrs. Davis (Andy's Mom)
    - Sarge
    - Barbie
-->

<sect id="sid">E sobre a "sid"?

<p>A <em>sid</em> ou <em>unstable</em> (instável) é o lugar onde a maioria dos
pacotes é inicialmente inserida à distribuição. Ela nunca será lançada
diretamente, porque pacotes que estão para serem lançados, terão primeiro que
ser incluídos na <em>testing</em>, de maneira a ser lançada na <em>stable</em>.
A sid contém pacotes para as arquiteturas lançadas e as que ainda não foram
oficialmente lançadas.

<p>O nome "sid" também veio do desenho animado "Toy Story":
Sid era o garoto na casa ao lado, que destruía brinquedos :-)

<sect1 id="sid-history">Notas históricas sobre a "sid".

<p>Quando a sid ainda não existia, a organização do site de FTP tinha uma
falha grave: havia uma presunção de quando uma arquitetura fosse criada na
unstable, ela seria lançada quando aquela distribuição se tornasse a nova
stable. Para muitas arquiteturas esse não era o caso, de forma que aqueles
diretórios tinham que ser movidos na hora do lançamento. Isso não era
prático, pois essa tarefa diminuía a largura de banda.

<p>Os administradores trabalharam sobre esse problema por vários anos,
colocando binários de versões ainda não lançadas em diretórios especiais
chamados "sid". Para aquelas arquiteturas que não haviam sido lançadas
ainda, a primeira vez que elas foram lançadas, isso se deu através de uma
ligação da stable atual com a sid, e a partir desse momento, eles eram
criados dentro da árvore unstable normalmente. Esse esquema era um tanto
confuso para os usuários.

<p>Com o advento dos conjuntos de pacote (veja <ref id="pools">), pacotes
binários começaram a ser armazenados em um local canônico nesse conjunto,
qualquer que fosse a distribuição, portanto, o lançamento de uma distribuição
não causa mais o consumo de grande largura de banda nos espelhos (há, na
verdade, um consumo gradual da largura de banda através do processo de
desenvolvimento).

<sect id="stable">O que o diretório "stable" contém?

<p><list>
  <item>stable/main/:
  este diretório contém os pacotes que constituem formalmente a versão mais
  recente do sistema &debian;.

  <p>Todos esses pacotes estão em conformidade com as <url name="Orientações
  sobre Software Livre do Debian"
  id="http://www.br.debian.org/social_contract#guidelines">,
  e são todos livremente utilizáveis e distribuíveis.

  <item>stable/non-free/: este diretório contém pacotes cuja distribuição
  é restrita de tal modo que requer que os distribuidores considerem
  cuidadosamente as exigências de copyright especificadas.

  <p>Por exemplo, alguns pacotes têm licenças que proíbem distribuição
  comercial. Outros podem ser redistribuídos, mas são na verdade shareware,
  e não freeware. As licenças de cada um desses pacotes devem ser estudadas
  e possivelmente negociada antes que os pacotes sejam incluídos em qualquer
  redistribuição (por exemplo, em um CD-ROM).

  <item>stable/contrib/: este diretório contém pacotes que são DFSG-free
  e podem ser <em>livremente distribuídos</em>, mas que por alguma razão
  dependem de um pacote que <em>não</em> é livremente distribuível e, portanto,
  disponível somente na seção non-free.
</list>

<sect id="testing">O que o diretório "testing" contém?

<p>Pacotes são instalados no diretório "testing" depois que eles sofrem algum
um certo grau de teste na unstable. Eles devem estar em sincronismo em
todas as arquiteturas para que eles foram construídos e não podem possuir
dependências que os tornem instáveis; eles também devem ter poucos bugs
críticos em relação as versões atualmente na "testing". Desse modo, esperamos
que a "testing" esteja sempre perto de ser uma candidata a lançamento.

<sect id="unstable">O que o diretório "unstable" contém?

<p>O diretório "unstable" contém uma imagem do atual sistema em
desenvolvimento. Usuários são bem vindos a usar e testar esses pacotes,
mas são avisados sobre seu estado incompleto. A vantagem de se usar
a distribuição "unstable" é que você está sempre atualizado com os
mais recentes lançamentos da indústria GNU/Linux, mas se ele falhar:
você terá que manter ambas as partes :-)

<p>Há também os subdiretórios main, contrib e non-free na "unstable",
separados pelos mesmos critérios da "stable".

<sect id="archsections">O que são todos aqueles diretórios dentro de
<tt>dists/stable/main</tt>?

<p>Dentro de cada árvore de diretório principal (<tt>dists/stable/main</tt>,
<tt>dists/stable/contrib</tt>, <tt>dists/stable/non-free</tt>, and
<tt>dists/unstable/main/</tt>, etc.), os pacotes binários residem em
subdiretórios cujos nomes indicam a arquitetura do processador para a
qual eles foram compilados:

<list>
  <item>binary-all/, para pacotes que são independentes da arquitetura.
    Isso inclui, por exemplo, scripts Perl, ou documentação simples.

  <item>binary-i386/, para pacotes que são executados em máquinas PC 80x86.

  <item>binary-m68k/, para pacotes que são executados em máquinas baseadas no
    processador Motorola 680x0. Atualmente, isto é feita principalmente para
    computadores Atari e Amiga, e também para algumas placas baseadas no padrão
    industrial VME.
<!-- Still true?
    There is no port of Linux to the old m68k based Macintoshes,
    because Apple did not supply the needed hardware information.
-->

  <item>binary-sparc/, para pacotes que são executados em Sun SPARCStations.

  <item>binary-alpha/, para pacotes que são executados em máquinas DEC Alpha.

  <item>binary-powerpc/, para pacotes que são executados em máquinas PowerPC.

  <item>binary-arm/, para pacotes que são executados em máquinas ARM.
</list>

<p>Veja <ref id="arches"> para mais informações.

<sect id="source">Onde está o código-fonte?

<p>O código fonte é incluído para tudo no sistema Debian. Além disso,
os termos de licenças de muitos programas do sistema, <em>requerem</em>
que o código-fonte seja distribuído com os programas, ou que uma oferta
de obtenção do código-fonte acompanhe o programa.

<p>Normalmente o código-fonte é distribuído através do diretório "source",
que é paralelo a todos os diretórios binários específicos a cada arquitetura,
ou atualmente, no diretório <tt>pool</tt> (veja <ref id="pools">). Para
obter o código-fonte sem ter que estar familiarizado com a estrutura do
repositório de FTP, tente um comando como <tt>apt-get source MeuNomeDePacote</tt>.

<p>Códigos-fonte podem ou não estar disponíveis para pacotes pertencentes ao
diretório "contrib" e "non-free", que não são partes formais do sistema Debian.

<sect id="pools">O que existe no diretório <tt>pool</tt>?

<p>Historicamente, pacotes foram mantidos nos subdiretórios correspondentes
do diretório <tt>dists</tt>. Isso demonstrou ser a causa de vários problemas,
como o grande consumo de largura de banda nos espelhos quando grandes mudanças
eram feitas.

<p>Pacotes agora são mantidos em grandes "repositórios", estruturados de
acordo com o nome do pacote fonte. Para fazer isso administrável, o
repositório é subdividido por seções ("main", "contrib" e "non-free") e
pela primeira letra do nome do pacote fonte. Esses diretórios contém vários
arquivos: os arquivos binários para cada arquitetura, e os pacotes fonte
de onde os pacotes binários são gerados.

<p>Você pode descobrir onde cada pacote é colocado executando um comando como
<tt>apt-cache showsrc NomeDoMeuPacote</tt> e olhando na linha "Directory:".
Por exemplo, os pacotes <tt>apache</tt> são armazenados em
<tt>pool/main/a/apache/</tt>. Como existem tantos pacotes <tt>lib*</tt>,
estes são tratados especialmente: por exemplo, pacotes
<package>libpaper</package> são armazenados em <tt>pool/main/libp/libpaper/</tt>.

<p>Os diretórios <tt>dists</tt> ainda são usados para os arquivos índices
usados por programas como <tt>apt</tt>. Também, na hora de escrever, velhas
distribuições não foram convertidas para o uso de repositórios, deste modo,
você verá caminhos contendo distribuições como "potato" ou "woody" no campo
de cabeçalho "Filename".

<p>Normalmente, você não terá que se preocupar com isso, já que o <tt>apt</tt>
e provavelmente o <tt>dpkg-ftp</tt> (veja <ref id="howtocurrent">) resolverá
isso automaticamente. Se você deseja mais informações, veja o
<url id="http://people.debian.org/~joeyh/poolfaq"
 name="FAQ dos repositórios de pacotes Debian">.

<sect id="otherdirs">Ok, e sobre os outros diretórios, que não estão dentro de
<tt>dists</tt> ou <tt>pool</tt>?

<p>Os seguintes diretórios adicionais existem:
<taglist>
  <tag><em>/tools/</em>:
    <item>Utilitários DOS para a criação de discos de boot, particionamento
    de seu disco rígido, compressão/descompressão de arquivos, e inicializar o Linux.
  <tag><em>/doc/</em>:
    <item>Documentação Debian, FAQ do Debian, instruções de como enviar
    relatórios de bugs.
  <tag><em>/indices/</em>:
    <item>Vários índices, mantenedores, arquivos Packages-master, arquivos
    ignorados.
  <tag><em>/project/</em>:
    <item>Muito material somente para desenvolvedores, como:
    <taglist>
      <tag><em>project/experimental/</em>:
        <item>Este diretório contém pacotes e ferramentas que ainda estão sendo
        desenvolvidas, e ainda estão do estágio alpha de testes. Usuários não
        devem usar pacotes daqui, porque eles podem ser perigosos e prejudiciais
        até mesmo para pessoas experientes.
      <tag><em>project/orphaned/</em>:
        <item>Pacotes que foram abandonados por seus desenvolvedores, e
        retirados da distribuição.
    </taglist>
</taglist>