[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fwd: Uso de AR nos pacotes .DEB



On Fri, Jul 13, 2018 at 02:28:29PM -0300, Thiago Marinello wrote:
> Olá, pessoal.
> 
> Recorro a experiência de vocês para tentar me explicar por que diabos
> os pacotes .deb usam "ar" e não "tar"?
> 
> O formato do ar usa um campo de 10 bytes para representar o tamanho do
> arquivo, o problema é que o valor é codificado em ASCII, o que me
> parece muito tosto. Isso faz com que o limite seja "9999999999" bytes,
> mas poderia ser 2^80 caso o valor fosse codificado em binário.
>

Pode parecer tosco à primeira vista, porém está perfeitamente alinhado
com a filosofia dos programas Unix de utilizar formatos texto de modo a
propiciar um parsing fácil por ferramentas simples. Além disso, mesmo
softwares grandes são normalmente divididos em partes, como pode ser
visto nos diversos pacotes que compõe o GNOME empacotado no Debian.
Deste modo, 10GB é um limite bem razoável para *cada arquivo-membro* de
um .ar.

> Alguém sabe por que o ar é o formato escolhido? E no caso de
> precisarmos de um pacote .deb com tamanho da ordem de 10Gbytes, há
> alguma forma elegante de suportar isso?
> 

O que encontrei foi isso :

"Ian Jackson soon took over the development of the packaging tool,
renaming the tool itself dpkg-deb and writing a front-end program he
named dpkg to facilitate the use of dpkg-deb and provide the
Dependencies and Conflicts of today's Debian system. The packages
produced by these tools had a header listing the version of the tool
used to create the package and an offset within the file to a
tar-produced archive, which was separated from the header by some
control information.

At about this time some debate arose between members of the project --
some felt that the Debian-specific format created by dpkg-deb should be
dropped in favor of the format produced by the ar program. After several
revised file formats and correspondingly-revised packaging tools, the ar
format was adopted. The key value of this change is that it makes it
possible for a Debian package to be un-packaged on any Unix-like system
without the need to run an untrusted executable. In other words, only
standard tools present on every Unix system like 'ar' and 'tar' are
required to unpack a Debian binary package and examine the contents."
(https://www.debian.org/doc/manuals/project-history/ch-detailed.en.html)

O deb-old era um formato inventado pelo Ian Jackson, mais difícil de
fazer parsing, e o projeto sinalizou que o uso do 'ar', por ser ubíquo e
ter finalidade semelhante, atenderia melhor às necessidades de
manipulação do formato em máquinas Unix que não tivessem as ferramentas
específicas do Debian instaladas.

> Obrigado.
> __
>  Thiago Marinello
>  +55 19 992 480 860
> 

Abraços.

David Polverari <david.polverari@gmail.com>


Reply to: