Um pacote Debian (do Debian, Ubuntu, etc) é um arquivo criado com o GNU ar. Pra falar sobre ele, há uma pequena dificuldade e possível limitação na língua portuguesa – pelo menos pra mim.
O GNU ar é usado para manipular arquivos (archives), que são compostos por uma coleção de arquivos (files), cada um com suas permissões (timestamp, uid, mode, etc). É semelhante ao GNU tape archiver (tar), ou mesmo um arquivo ZIP sem compressão. Uma das particularidades deste formato é que ele é considerado parte do ambiente de desenvolvidomento, pois os arquivos deste tipo são usados também como bibliotecas estáticas no sistema – aquelas bibliotecas com extensão .a, que contém diversos objetos .o dentro.
Veja:
$ file /usr/lib/libgdict-1.0.a /usr/lib/libgdict-1.0.a: current ar archive $ ar vt /usr/lib/libgdict-1.0.a rw-r--r-- 0/0 632 Sep 18 13:19 2007 libgdict_1_0_la-gdict-debug.o rw-r--r-- 0/0 21328 Sep 18 13:19 2007 libgdict_1_0_la-gdict-context.o rw-r--r-- 0/0 43240 Sep 18 13:19 2007 libgdict_1_0_la-gdict-client-context.o rw-r--r-- 0/0 27736 Sep 18 13:19 2007 libgdict_1_0_la-gdict-database-chooser.o rw-r--r-- 0/0 67416 Sep 18 13:19 2007 libgdict_1_0_la-gdict-defbox.o rw-r--r-- 0/0 15256 Sep 18 13:19 2007 libgdict_1_0_la-gdict-entry.o rw-r--r-- 0/0 9992 Sep 18 13:19 2007 libgdict_1_0_la-gdict-enum-types.o rw-r--r-- 0/0 2064 Sep 18 13:19 2007 libgdict_1_0_la-gdict-marshal.o rw-r--r-- 0/0 27720 Sep 18 13:19 2007 libgdict_1_0_la-gdict-source.o rw-r--r-- 0/0 14904 Sep 18 13:19 2007 libgdict_1_0_la-gdict-source-loader.o rw-r--r-- 0/0 23992 Sep 18 13:19 2007 libgdict_1_0_la-gdict-speller.o rw-r--r-- 0/0 27608 Sep 18 13:19 2007 libgdict_1_0_la-gdict-strategy-chooser.o rw-r--r-- 0/0 4600 Sep 18 13:19 2007 libgdict_1_0_la-gdict-utils.o
Os pacotes Debian não são muito diferentes. Embora devam ser manipulados com as próprias ferramentas do Debian – tais como dpkg – nada impede de abrí-los e verificar seu conteúdo, usando o GNU ar.
Com o comando dpkg-deb -I arquivo.deb você obtém a descrição do pacote. Usando dpkg-deb -c arquivo.deb você obtém a lista de arquivos que este pacote irá instalar, quando usar o comando dpkg -i arquivo.deb. O conteúdo do pacote Debian é o seguinte:
$ file sox_13.0.0-1build1_amd64.deb sox_13.0.0-1build1_amd64.deb: Debian binary package (format 2.0) $ ar vt sox_13.0.0-1build1_amd64.deb rw-r--r-- 0/0 4 Jul 3 00:55 2007 debian-binary rw-r--r-- 0/0 1263 Jul 3 00:55 2007 control.tar.gz rw-r--r-- 0/0 220555 Jul 3 00:55 2007 data.tar.gz
O arquivo chamado debian-binary contém a versão do pacote – uma linha escrito “2.0″. O arquivo control.tar.gz contém os arquivos de controle do pacote, como descrição, dependências, scripts para executar antes e/ou depois de instalar o pacote, scripts pro contrab, etc. Por fim, o arquivo data.tar.gz contém os arquivos que este pacote irá instalar no sistema.
Para extrair o conteúdo pode-se usar o comando ar vx nome.deb.

Comentários