O comando Linux dpkg, trabalha em uma camada mais baixa do que os utilitários APT. O dpkg é na verdade é o responsável pelo gerenciamento de pacotes no LINUX em distribuições baseadas em Debian, como por exemplo Ubuntu e Kali Linux.
O trabalho do dpkg é semelhante ao do utilitário rpm em distribuição Linux baseada em Red Hat, como por exemplo o CentOs.
Se eu precisar resumir em poucas palavras, a utilização do comando Linux dpkg seria: dpkg é um comando para gerenciar arquivos .deb, padrão de instalação de pacotes do Debian.
O comando Linux APT tem funcionalidades para praticamente resolver qualquer problema, mas existe momentos que utilizar o comando Linux dpkg será necessário, como por exemplo descobrir qual o pacote está associado com um determinado arquivo em seu sistema.
Com o comando dpkg, qualquer usuário poderá fazer consultas no banco de dados de pacote do sistema.
Agora utilizar o dpkg para instalar ou remover software do seu sistema Linux, só poderá ser executado com o privilégios de root.
Instalando um pacote com o comando Linux dpkg
O comando dpkg se concentra apenas em manipular pacotes, enquanto o apt-get vai cuidar da bagunça e detalhes de descobrir quem hospeda um repositório de pacotes e baixar de lá.
Para simplificar, o exemplo a seguir usa o apt-get para baixar um pacote e depois dpkg
para instalá-lo, só para dar um gostinho do comando dpkg.
Primeiro, faça o download do pacote .deb usando comando apt-get. A opção -d é para executar apenas o download sem instalar o pacote.
# sudo apt-get -d install minicom
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Pacotes sugeridos:
Os NOVOS pacotes a seguir serão instalados:
minicom
...
Baixar completo e no modo somente baixar ("download only")
Lembrando que o arquivo foi baixado para /var/cache/apt/archives/, onde se encontra o nosso cache local dos arquivos .deb baixados pelo APT, no futuro você poderá limpar o cache do APT.
# sudo dpkg -i /var/cache/apt/archives/minicom_2.3-1ubuntu1_i386.deb
Selecionando pacote previamente não selecionado minicom.
(Lendo banco de dados ... 200846 arquivos e diretórios atualmente instalados).
Desempacotando minicom (de .../minicom_2.3-1ubuntu1_i386.deb) ...
Configurando minicom (2.3-1ubuntu1) ...
O pacote minicom_2.3-1ubuntu1_i386.deb foi baixado pela versão do meu ubuntu, na versão que você estiver utilizando provavelmente o pacote do minicom estará em outra versão. Sendo assim utilize a tecla [TAB] para completar o comando
# sudo dpkg -i /var/cache/apt/archives/minicom [TAB]
Sempre comento pra quem esta começando com Linux, a tecla [TAB] é uma ótima companheira.
Pronto é só, agora já sabemos utilizar o dpkg com a opção -i, para fazer a instalação de pacotes no Linux.
Uma questão interessante, que diferente do apt, ou apt-get, o comando Linux dpkg trabalha indicando diretamente o arquivo do pacote, com e extensão .deb.
Com usar o comando Linux dpkg para remover pacotes no Linux
Remover pacotes do Linux com utilitário dpkg é muito simples, temos duas opções.
Vamos remover o mesmo pacote, que acabamos de fazer a instalação, mesmo porque o utilitário minicom provavelmente não será utilizado por você.
Para remover um pacote instalado com o dpkg, use a opção -r da seguinte forma
# sudo dpkg -r minicom
(Reading database ... 89182 files and directories currently installed.)
Removing minicom ...
Se você quiser remover o pacote e seus arquivos de configuração de uma só vez, use a opção -P
# sudo dpkg -P minicom
(Reading database ... 89126 files and directories currently installed.)
Removing minicom ...
Purging configuration files for minicom ...
Quando devemos usar a opção -r ou -P ?
Pois bem, vamos pensar na remoção de um pacote que tenha um arquivo de configuração, como por exemplo o pacote do samba.
Os arquivos de configuração estão em /etc/samba, o arquivo smb.conf contem todas as configurações deste famoso servidor de arquivos para redes windows.
Se você precisa remover o samba, mas ainda acha que vai precisar do seu smb.conf, então execute:
# sudo dpkg -r samba
Mas se você ficou nervoso com a versão do seu servidor samba, e não quer mais ver a “cor” do seu smb.conf, deve executar:
# sudo dpkg -P samba
Simples assim, da mesma forma que existe o apt-get remove samba –purge e o apt-get remove samba.
veja também artigo sobre apt-get.
Usando o dpkg para extrair informações sobre pacotes do Linux
No Debian Linux e no Ubuntu Linux, os pacotes vêm empacotados em arquivos simples, com a extensão .deb.
Cada arquivo deb contém um ou mais arquivos que compõem o pacote em si, arquivos de apoio, documentação e, talvez código fonte.
Sendo assim, um arquivo .deb é basicamente:
- Um repositório de arquivos a ser instalado no Linux
- Cabeçalho de arquivos e controle de informação que identifica o software (descrições, checksums, e assim por diante)
Você pode extrair uma série de informações sobre um pacote com o comando dpkg, e pode acreditar, isso é muito útil.
Como extrair arquivos de um pacote .deb com comando dpkg
O exemplo abaixo irá extrai os arquivos do pacote .deb.
Vamos usar o apt-get para baixar o pacote do rsync e fazer um teste.
# mkdir /tmp/rsync_conteudo
# cd /tmp/rsync_conteudo
# sudo apt-get -d install rsync
O Comando Linux dpkg com a opção -x , é utilizado para extrair os arquivos de um pacote .deb .
# sudo dpkg -x rsync_2.6.9-3ubuntu1.1_i386.deb /tmp/rsync_conteudo
$ ls /tmp/rsync_conteudo etc usr
Você deve substituir o arquivo, rsync_2.6.9-3ubuntu1.1_i386.deb no comando acima,
por qualquer arquivo .deb que você possa vir a baixar.
Consultando informações sobre os pacotes .deb com o dpkg
Como verificar a versão de um pacote deb usando o dpkg?
Podemos utilizar o dpkg -p para verificar a versão de um pacote já instalado.
$ dpkg -p rsync
Version: 2.6.9-3ubuntu1.1
E você também poderá verificar a versão, de um pacote que ainda não está instalado.
O exemplo a seguir mostra como exibir informações de versão, de um pacote .deb que ainda não foi instalado.
Use a opção -I para obter informações sobre um pacote deb.
$ dpkg -I rsync_2.6.9-3ubuntu1.1_i386.deb
novo pacote debian, versão 2.0.
Como listar todos os pacotes instalados com o comando Linux dpkg
O comando dpkg -l, lista de todos os pacotes instalados em seu sistema, digite o seguinte:
# dpkg-l | less
...
ii acpi 0,09-1 exibe informações sobre dispositivos ACPI
...
Para ver informações de um pacote específico, você poderá utilizar a opção -l, com um nome de pacote:
# dpkg -l rsync
ii rsync 3.0.5-1ubuntu2 fast remote file copy program (like rcp)
Como verificar o status de um pacote .deb no Linux
Para verificar o status de um pacote deb, é muito simples, iremos utilizar a opção -s do comando Linux dpkg, neste caso pacote deb deve estar instalado também.
# dpkg -s rsync
Package: rsync
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 664
Maintainer: Ubuntu Core Developers <[email protected]>
Architecture: i386
Version: 3.0.5-1ubuntu2
Depends: libacl1 (>= 2.2.11-1), libc6 (>= 2.8), libpopt0 (>= 1.14), lsb-base (>= 3.2-14), base-files (>= 4.0.1)
Suggests: openssh-client, openssh-server
Conffiles:
/etc/default/rsync 126a5f9d12d57da27b95192fed269ad5
/etc/init.d/rsync 6e44406359668ee5d2fd0be20effddca
Description: fast remote file copy program (like rcp)
rsync is a program that allows files to be copied to and from remote
machines in much the same way as rcp. It has many more options than
rcp, and uses the rsync remote-update protocol to greatly speed up
file transfers when the destination file already exists.
…
No exemplo acima, você poderá verificar o campo status, que mostra a situação do pacote, neste exemplo, o pacote está instalado.
Como Listar o Conteúdo de um pacote .deb usando o dpkg
O comando dpkg, com a opção -c lista o conteúdo de um arquivo deb
# dpkg -c rsync_2.6.9-3ubuntu1.1_i386.deb
drwxr-xr-x root / root 0 2007-08-17 20:48. / drwxr-xr-x root / root 0 2007-08-17 20:48. /usr/ drwxr-xr-x root / root 0 2007-08-17 20:48. /usr/bin / -rwxr-xr-x root / root 294864 2007-08-17 20:48. / usr / bin / rsync drwxr-xr-x root / root 0 2007-08-17 20:48. / usr / share / drwxr-xr-x root / root 0 2007-08-17 20:48. / usr / share / doc / ...
Como verificar os arquivos instalados por um pacote .deb
Para ver os arquivos instalados de um pacote, e que o seu sistema Linux esta utilizando, use a opção -L:
# dpkg -L minicom
/.
/ usr
/ usr / share
/ usr / share / man
/ usr/share/man/man1
/ usr/share/man/man1/minicom.1.gz
/ usr/share/man/man1/xminicom.1.gz
/ usr/share/man/man1/ascii-xfr.1.gz
...
Se o pacote não for completamente removido, você poderá ver alguns arquivos de configuração:
# dpkg -L minicom
/etc
/etc/minicom
/etc/minicom/minicom.users
Estes exemplos são o básico para se trabalhar com o dpkg.
Outras opções disponíveis incluem utilitários para reconfiguração de pacotes como o dpkg-reconfigure, aqui você tem uma referência.
Verifique a página de manual do dpkg para mais informações, com o comando
# man dpkg
E você, já utilizou o dpkg para instalar algum pacote na sua distribuição Linux?
Se você precisar de mais informações sobre o dpkg, apt, e claro mais exemplos de utilização destes comandos, sugiro também baixar o ebook sobre Ubuntu Linux, neste ebook eu trabalho vários exemplos direto no terminal do Ubuntu.