abrindo pacotes debian

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.

Anúncios


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s