Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Linux    

DPKG – Debian Package Manager


Comentários  3
Visualizações  
65.544

Como lidar com os pacotes de programas que encontramos por aí na Internet, ou nos CDs das distribuições Linux? Quais os processos para instalar, remover e atualizar programas que estão no formato DPKG?

Para manipular os pacotes .deb, o Debian e seus derivados utilizam o programa dpkg. Com esta poderosa ferramenta, podemos construir, instalar, consultar, atualizar ou apagar pacotes de programas. Um pacote no formato DEB consiste em um arquivo no formato ar, contendo os meta-dados (arquivos de controle, definições, permissões, informações de dependências, entre outros) e dados do programa, ambos agrupados com o tar e compactados com o gzip.

Para extrair o conteúdo de um pacote DEB sem instalá-lo no sistema, utilizamos o comando dpkg-deb. O parâmetro -x extrai os dados de programa do pacote. Exemplo, extraindo o conteúdo de um pacote no diretório atual:

$ dpkg-deb -x pacote.deb .

Para extrair os meta-dados (arquivos de controle) do mesmo pacote, utilizamos o parâmetro -e. O exemplo abaixo vai criar um diretório chamado DEBIAN contendo todos os arquivos de controle do pacote:

$ dpkg-deb -e pacote.deb

O banco de dados do dpkg está localizado no diretório /var/lib/dpkg e seu formato é de um arquivo texto comum, podendo ser editado por qualquer editor de texto.

DPKG: Instalação e desinstalação

Para instalar um pacote, utilizamos a opção -i:

# dpkg -i pacote.deb

O -i também serve para atualização de um pacote. Se o pacote já existir e se o que estivermos tentando instalar for mais novo, o pacote será atualizado.

Para remover um pacote do sistema, utilizamos a opção -r:

# dpkg -r pacote

Caso esse pacote não seja removido porque outros pacotes dependem dele, podemos forçar a remoção do mesmo com o parâmetro –force-depends:

# dpkg -r --force-depends pacote

Cuidado! Forçar a remoção de um pacote sem resolver as dependência pode causar problemas! Os programas dependentes do pacote poderão não funcionar corretamente. Use apenas se você souber o que estiver fazendo.

DPKG: Consulta

Para ver uma lista com todos os pacotes intalados no sistema, utilize:

$ dpkg -l

O dpkg irá mostrar uma lista com todos os pacotes, o status, a versão e um pequeno sumário sobre o que é cada um dos pacote.

As três primeiras linhas do comando dpkg -l mostram os estados dos pacotes, representados por três letras. A primeira letra significa o estado que o sistema quer que o pacote esteja (Desired), a segunda letra indica o estado atual do pacote e a terceira letra indica um erro. O próprio cabeçalho do comando indica quais estados podem aparecer nas letras.

Por exemplo, a combinação ii significa que o sistema quer que o pacote esteja instalado (primeira letra i) e o pacote realmente está instalado no sistema (segunda letra i). A combinação rc significa que o pacote está marcado para ser removido (primeira letra: r), mas os arquivos de configuração não foram removidos (segunda letra: c).

Para saber se apenas um pacote está instalado, basta colocar o nome do pacote depois do parâmetro -l:

$ dpkg -l vim

Para listar todos os pacotes associados a uma certa palavra, utilizamos o -l da seguinte forma:

$ dpkg -l '*gnome*'

Dessa forma todos os pacotes contendo a palavra gnome no nome serão mostrados na tela.

Para obter informações detalhadas sobre um pacote, utilizamos o parâmetro -p:

$ dpkg -p grub
Package: grub
Priority: optional
Section: admin
Installed-Size: 668
Maintainer: Grub Maintainers <[email protected]>
Architecture: i386
Version: 0.95+cvs20040624-17
Depends: libc6 (>= 2.3.2.ds1-4), libncurses5 (>= 5.4-1)
Suggests: grub-doc, grubconf
Size: 358684
Description: GRand Unified Bootloader
 GRUB is a GPLed bootloader intended to unify bootloading across x86
 operating systems.  In addition to loading the Linux kernel,
 it implements the Multiboot standard, which allows for flexible loading
 of multiple boot images (needed for modular kernels such as the GNU Hurd).

O dpkg -p mostrou vários detalhes sobre o pacote, como por exemplo quem mantém o pacote, que seção ele pertence, qual arquiteura, do que ele depende, qual o tamanho, versão e um sumário e descrição sobre o que é o pacote. Quem quer conhecer mais sobre os programas dentro da distribuição pode utilizar o dpkg -l e ir verificando os detalhes de cada pacote com dpkg -p. Haja paciência!

Para verificar o status de um pacote (como mostrado na lista com o dpkg -l, utilize o parâmetro -s:

$ dpkg -s pacote

Para listar o conteúdo de um pacote:

$ dpkg -L grub
/.
/sbin
/sbin/update-grub
/sbin/grub-install
/usr
/usr/share
...corte...

Para procurar por um arquivo dentro do banco de dados do dpkg afim de descobrir a qual pacote ele pertence, utilizamos a opção -S:

$ dpkg -S arquivo

Exemplo:

$ dpkg -S /usr/bin/file
file: /usr/bin/file
65.544

Comentários  3
Visualizações  
65.544


TagsLeia também

Apaixonado por Linux e administração de sistemas. Viciado em Internet, servidores, e em passar conhecimento. Idealizador do Devin, tem como meta aprender e ensinar muito Linux, o que ele vem fazendo desde 1997 :-)


Leia também



Comentários

3 respostas para “DPKG – Debian Package Manager”

  1. Juliano Azevedo disse:

    Este tutorial é muito oportuno principalmente para mim que sou iniciante no mundo linux.

  2. […] os pacotes vão se chamar “mdadm” e “dmsetup”. Utilize o rpm (Red Hat) ou dpkg (Debian) para fazer essa […]

  3. Luiz disse:

    Muito útil seu tutorial. Parabéns.

    Saberia me dizer como faço para instalar uma versão mais atualizada do dpkg no Kubuntu 14.04. Atualmente tenho a versão 1.17.5 (amd64). Acontece que por algum motivo (quando eu fiz um dist-upgrade – talvez por pura burrice) eu perdi o VLC que havia instalado agora ele não instala mais me apresentando o seguinte problema.

    Lendo listas de pacotes… Pronto
    Construindo árvore de dependências
    Lendo informação de estado… Pronto
    Alguns pacotes não puderam ser instalados. Isto pode significar que
    você solicitou uma situação impossível ou, se você está usando a
    distribuição instável, que alguns pacotes requeridos não foram
    criados ainda ou foram retirados da "Incoming".
    A informação a seguir pode ajudar a resolver a situação:

    Os pacotes a seguir têm dependências desencontradas:
    vlc : Depende: vlc-bin (= 2.2.4-13~14.04.york0) mas não será instalado
    Depende: vlc-plugin-base (= 2.2.4-13~14.04.york0) mas não será instalado
    Depende: vlc-plugin-qt (= 2.2.4-13~14.04.york0) mas não será instalado
    Depende: vlc-plugin-video-output (= 2.2.4-13~14.04.york0) mas não será instalado
    Pré-Depende: dpkg (>= 1.17.14)
    Recomenda: vlc-plugin-notify (= 2.2.4-13~14.04.york0) mas não será instalado
    Recomenda: vlc-plugin-samba (= 2.2.4-13~14.04.york0) mas não será instalado
    Recomenda: vlc-plugin-skins2 (= 2.2.4-13~14.04.york0) mas não será instalado
    Recomenda: vlc-plugin-video-splitter (= 2.2.4-13~14.04.york0) mas não será instalado
    Recomenda: vlc-plugin-visualization (= 2.2.4-13~14.04.york0) mas não será instalado
    E: Impossível corrigir problemas, você manteve (hold) pacotes quebrados.

    Dentre os problemas quando tento instalar as dependências na unha já que não esta fazendo no automático ele está solicitando um dpkg na versão dpkg (>= 1.17.14). Seria possível e viável eu instalar um dpkg mais recente?

    Grato,
    Luiz

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *