Bits de Mudança

[1.6.2007] Vida de Pacote next up previous contents index
Seguinte: [15.6.2007] Canivete suiço do Acima: Ano de 2007 Anterior: Quinta-feiras pelo país   Conteúdo   Índice

[1.6.2007] Vida de Pacote


As distribuições de Linux incluem milhares de programas de Software Livre / Aberto (SL/A) diferentes. Ele é o Firefox para navegar na Internet, OpenOffice para produtividade, Gcompris com jogos pedagógicos, etc...
É necessário gerir a ligação entre quem escreve o software, quem o disponibiliza em CD / servidores e quem o utiliza. A forma de o fazer é armazená-los num único ficheiro comprimido a que se chama ``pacote''. Existem três tipos diferentes de pacotes mas que têm o mesmo objectivo: os tarball (extensão .tgz), os RPM (.rpm) e os .DEB.
Cada editor de Linux - isto é, quem junta o sistema operativo Linux e as aplicações num CD e a que vulgarmente chamados de ``Distribuição Linux'' - escolheu o seu tipo de pacote e disponibiliza todo o software nesse único formato.
A ``vida'' de um pacote RPM é dura e para prová-lo dou o exemplo de um deles: o sendmail.
O sendmail, software desconhecido para a maioria dos utilizadores, tem como missão transportar email e garantir a sua entrega entre servidores. Em cada 100 emails que recebe, 30 deles são provavelmente entregues por servidores com o sendmail instalado.
A primeira versão foi desenvolvida por Eric Allman no início da década de 80 e serviu de base à entrega de email entre os primeiros servidores da Internet, nessa altura chamada de ARPAnet.
Sendo SL/A, o seu código-fonte é distribuído livremente. Mas para se instalar na nossa distribuição de Linux preferida seria incómodo fazer o download, compilação e instalação manual de centenas de ficheiros.
O que acontece é que saído das mãos de Eric e dos seus colegas programadores, o sendmail é compilado e arquivado num único ficheiro comprimido, tal como um Zip de Windows auto-instalável, pela distribuição de Linux.
Esse ficheiro comprimido, um pacote no formato RPM no caso do Linux Caixa Mágica ou formato DEB no Linux Ubuntu, por exemplo, é mantido por alguém designado por maintainer. O maintainer é responsável por, cada vez que existe uma actualização do software, garantir que uma nova versão do ficheiro RPM é disponibilizada ao público em geral. Uma distribuição pode ter centenas de maintainers, alguns empregados pagos, outros voluntários da comunidade que passam por um escrutínio exigente.
A manutenção desses ficheiros RPM / DEB é uma tarefa complicada se pensarmos que uma versão de Linux pode ter de 5.000 a 15.000 desses ficheiros.
Antes de mais, é necessário de ter uma ``fábrica'' onde os pacotes são construídos. Falamos de poderosos conjuntos de servidores (``clusters'') que são capazes de construir 5.000 pacotes em poucas horas. O sendmail é, em conjunto com os outros, compilado e empacotado cada vez que existe uma alteração relevante.
Depois, é preciso garantir que não têm dependências quebradas. Isto é, que não precisam de outro software, outro RPM / DEB, que se encontra ausente do servidor. Para controlar esse aspecto, as distribuições correm durante a noite testes aos pacotes para verificar que não foi introduzido algum erro durante as actualizações feitas durante o dia.
Por fim, é preciso disponibilizar o pacote sendmail alterado aos utilizadores que dele precisam para o instalar ou fazer uma actualização.
Se fossem poucos utilizadores, bastava transferir para um servidor. Como falamos de dezenas ou centenas de milhares, as distribuições de Linux fazem cópias em diferentes servidores espalhados pela Internet – os mirrors. Este processo de sincronização é realizado continuamente e dá-nos garantias de segurança porque os ficheiros são assinados digitalmente.
Finalmente, o utilizador que pretende montar um servidor de mail simplesmente define na instalação que pretende instalar o software sendmail. Este, pode estar no CD ou vir através da Internet para ter garantias de actualização.
Não nos apercebemos mas o nosso pacote RPM foi trabalhado pelos programadores, maintainers, fábrica de construção de RPMs, servidores de teste / QA e mirrors espalhados pela internet de forma segura e descentralizada.
A próxima vez que fizer uma instalação de SL/A, lembre-se. É uma vida de pacote...


next up previous contents index
Seguinte: [15.6.2007] Canivete suiço do Acima: Ano de 2007 Anterior: Quinta-feiras pelo país   Conteúdo   Índice
2007-09-24

Creative Commons License
Esta obra está licenciada sob uma Licença Creative Commons.

© 2007 Paulo Trezentos | Design by Andreas Viklund