Aula #28 - DPKG


O Debian Package Manager (DPKG) é usado por todas as distribuições Linux baseadas no Debian para controlar a instalação, verificação, atualização e remoção de programas. O programa de baixo nível dpkg pode realizar todas essas operações em apenas um pacote ou em uma lista de pacotes. Operações problemáticas, como remover um pacote que outro pacote depende, são impedidas para garantir que o sistema esteja em bom estado.




O DPKG (Pacote Debian) é o sistema de pacotes utilizado para instalar, remover e gerenciar pacotes de software sob o Debian e outras distribuições derivadas dele. Como RPM, não é projetado para recuperar diretamente de repositórios na rede, mas para instalar e removê-los localmente.

Os arquivos de pacote tem um sufixo .deb e o banco de dados DPKG reside no diretório /var/lib/dpkg .

Como o rpm, o programa dpkg tem apenas uma visão parcial do universo: ele sabe apenas o que está instalado no sistema, e tudo o que é dado na linha de comando, mas não sabe nada sobre os pacotes disponíveis, estejam eles em repositórios, ou em algum outro diretório. A instalação de um pacote vai falhar se uma dependência não for atendida, e a remoção de pacote do qual outros pacotes instalados dependem também irá falhar. 


Nomes de pacotes Debian são formados por campos que representam informações específicas. A nomenclatura padrão para um pacote binário é:
_-_.deb

como em:
logrotate_3.8.7-1_amd64.deb
no Debian, e

logrotate_3.8.7-1ubuntu1_amd64.deb
no Ubuntu. 

 Observe que por questões históricas, a versão de 64-bits da arquitetura x86 é chamada de amd64 ao invés de x86-64, e distribuições como Ubuntu adicionam um identificador no nome dos nos pacotes.






O Sistema de pacotes do Debian

No sistema de pacotes Debian um pacote de código fonte consiste de pelo menos 3 arquivos:

  •     Um arquivo tar upstream, com extensão .tar.gz. Este é o código fonte original como distribuído pelos desenvolvedores do software.
  •     Um arquivo de descrição, terminando com .dsc, que contém o nome do pacote e outros meta dados, como arquitetura e dependências.
  •     Um segundo arquivo tar contendo os patches aplicados ao software original para torná-lo compatível com o Debian. Este arquivo termina com .debian.tar.gz ou .diff.gz, dependendo da distribuição. 


Por exemplo no Ubuntu é possível baixar os fontes com:
$ apt-get source logrotate

e então ver os arquivos com:

$ ls -lR logrotate*
-rw-r--r-- 1 root root 23842 Jan 22 2014 logrotate_3.8.7-1ubuntu1.debian.tar.gz
-rw-r--r-- 1 root root 1936 Jan 22 2014 logrotate_3.8.7-1ubuntu1.dsc
-rw-r--r-- 1 root root 58898 Jan 22 2014 logrotate_3.8.7.orig.tar.gz

logrotate-3.8.7:
total 228
-rw-r--r-- 1 root root 890 Aug 1 2012 basenames.c
-rw-r--r-- 1 root root 219 Aug 1 2012 basenames.h

....


Alguns exemplos de consultas que você pode fazer:

     Listar todos os pacotes instalados:
    $ dpkg -l

    Você pode especificar o nome de um pacote.
     
    Lista arquivo instalados pelo pacote wget :
    $ dpkg -L wget
     
    Mostra informações sobre um pacote instalado:
    $ dpkg -p wget
     
    Mostra informações sobre o conteúdo de um arquivo .deb:
    $ dpkg -I webfs_1.21+ds1-8_amd64.deb
     
    Lista aquivos contidos em um .deb:
    $ dpkg -c  webfs_1.21+ds1-8_amd64.deb
     
    Mostra qual pacote instalou o arquivo /etc/init/networking.conf:
    $ dpkg -S /etc/init/networking.conf
     
    Mostra o estado de um pacote:
    $ dpkg -s wget
     
    Verifica a integridade de um pacote instalado
    $ dpkg -V package

    Sem argumentos verificar todos os pacotes.  Veja a man page para ver os detalhes. (Apenas versões recentes do  dpkg (1.17+) suportam esta opção.)




Como instalar um pacote ou arquivo .deb

O comando:
$ sudo dpkg -i foobar.deb

pode ser utilizado tanto para instalar ou atualizar o pacote foobar.

Se o pacote não está instalado no momento, então ele será instalado. Se existe uma versão do pacote que é mais recente do que a versão instalada atualmente, ele será atualizado. 

O comando:
$ sudo dpkg -r package

é usado para remover um pacote instalado, exceto seus arquivos de configuração. O comando:
$ sudo dpkg -P package

é usado para remover totalmente um pacote instalado, o que inclui seus arquivos de configuração.  (Nota -P significa purge ou purificar no contexto de um purgatório).

Mais vistos no mês:

As melhores distribuições Linux para 2017

TuxMath - Tux, do Comando da Matemática. Ensino e diversão a crianças.

Teste de Performance de Rede com Iperf

OPNsense - Firewall Open Source

DHCP - Guia Completo

Aula #14 - Os sistemas de arquivos ext2/ext3/ext4

Ophcrack: Descubra todas as senhas do Windows

SSD no linux

Administração de sistema e Deploys: Ansible, Chef, Fabric, Puppet ou Salt?