Pular para o conteúdo principal

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).

Comentários

Postagens mais visitadas deste blog

Distribuições Linux para 2020

Olá, Fiz um compilado das melhores distros para 2020, ou melhor, da aposta para as melhores distribuições e destaques para 2020. Além disto, algumas listas das melhores distros para o próximo ano feita pelos maiores sites e a melhor distribuição Linux para cada categoria de usuário. Além disto, respondo a pergunta que todos fazem: Qual o Linux mais leve? e Qual o Linux mais bonito? Ubuntu e suas variantes A primeira aposta e mais obvia é o Ubuntu.  Tanto pelo tamanho da comunidade quanto por ser a primeira distro a ser usada quando alguma empresa resolve desenvolver/portar seus aplicativos para linux, além de ser a distro mais indicada para quem está iniciando com o S.O. Soma-se isto ao suporte da Steam, facilitadores como o Lutris e pacotes de apps oficiais distribuídos por devs como Nvidia, Intel dentre outras... Um dos maiores responsáveis é a API Vulkan da AMD e o Proton da Valve/Steam! Que promete fazer muitos gamers mudarem por completo para o Linux e o ubuntu pr

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

Tux Of Math Command, (Tux, do Comando da Matemática, em sátira ao desenho animado, Buzz Lightyear, do Comando Estelar) ou simplesmente TuxMath é um game open source, no estilo arcade, originalmente desenvolvido para linux, mas atualmente é multiplataforma, disponível em Windows, Mac, BeOS, web, dispositivos móveis...

SSD no linux

Mitos e verdades do SSD no Linux - Instalando, configurando e otimizando SSD no Linux SSD são suportados no Linux desde o kernel 2.6.29. Schedulers e File Systems também suportam os 'discos sólidos' ou 'não-rotacionais' (SSDs) há um bom tempo. A maioria dos artigos que existem na internet são bem antigos e não refletem os ambientes atuais dos sistemas Linux. Este artigo trás alguns macetes para otimizar o SSD num ambiente onde o sistema operacional estará instalado nele. Tiro alguns mitos de que seria necessário mudanças bruscas no sistema para que o SSD seja bem aproveitado (hoje, basicamente no uso do dia-a-dia, nada é preciso após instala-lo) apenas alguns pontos a serem observados.