Gerenciamento de pacotes com dpkg

Gerenciamento de pacotes com dpkg

O dpkg é o gerenciador de pacotes padrão em distribuições Debian e derivados. Seu gerenciamento é bem simplificado através de parâmetros e argumentos passados via linha de comandos, abaixo veremos alguns simples exemplos de utilização do dpkg nas tarefas diárias de um administrador de sistemas:

Para listarmos todos os pacotes disponíveis no sistema, pode-se executar a seguinte linha de comandos:

root@server:~# dpkg -l

A lista ficaria bem extensa, então é possível também redirecionar a saída para um pipe e filtrar somente os pacotes que estamos procurando:

root@server:~# dpkg -l |grep apache
ii  apache2                             2.2.16-6+squeeze2            Apache HTTP Server metapackage
ii  apache2-mpm-worker                  2.2.16-6+squeeze2            Apache HTTP Server - high speed threaded model
ii  apache2-utils                       2.2.16-6+squeeze2            utility programs for webservers
ii  apache2.2-bin                       2.2.16-6+squeeze2            Apache HTTP Server common binary files
ii  apache2.2-common                    2.2.16-6+squeeze2            Apache HTTP Server common files
ii  libapache2-mod-proxy-html           3.0.1-1                      Apache2 filter module for HTML links

No exemplo acima, foram listados todos os pacotes que  possuem “apache” em seu nome, isso graças ao filtro permitido pelo pipe. Para adicioanar um pacote, utilizamos a opção -i do dpkg:

root@server:~# dpkg -i rkhunter_1.3.6-4_all.deb

Acima efetuamos a instalação do pacote rkhunter. Note que devemos indormar o nome completo do arquivo incluindo a extensão .deb. Já no processo de remoção de pacotes não precisamos especificar a extensão, somente o nome do pacote. Abaixo usaremos como exemplo novament e o pacote rkhunter como exemplo de remoção de um pacote utilizando o dpkg:

root@server:~# dpkg -l |grep rkhunter
ii  rkhunter                            1.3.6-4                      rootkit, backdoor, sniffer and exploit scanner

Na linha acima, listamos o pacote rkhunter para saber se o mesmo estava instalado no sistema. Agora utilizando a opção -r removemos o pacote com a linha de comandos abaixo:

root@server:~# dpkg -r rkhunter

Uma grande utilidade do comando dpkg, é quando possuímos determinado arquivo mas não sabemos a que pacote o mesmo peertence. A opção -S serve para listar os pacotes pertencentes a cada arquivo:

root@server:~# dpkg -S /etc/rkhunter.conf
rkhunter: /etc/rkhunter.conf

Com o resultado acima, podemos ver que o arquivo /etc/rkhunter.conf pertence ao pacote  rkhunter.

Também podemos listar todos os arquivos referentes a um determinado pacote, com a opção -L é possível realizar tal procedimento:

root@server:~# dpkg -L rcconf
/.
/var
/var/lib
/var/lib/rcconf
/usr
/usr/sbin
/usr/sbin/rcconf
/usr/sbin/update-rcconf-guide
/usr/share
/usr/share/doc
/usr/share/doc/rcconf
/usr/share/doc/rcconf/README.Debian
/usr/share/doc/rcconf/copyright
/usr/share/doc/rcconf/changelog.gz
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/rcconf.8.gz
/usr/share/man/man8/update-rcconf-guide.8.gz
/usr/bin

Se por alguma razão for necessário extrair os arquivos de um pacote, a opção -x, observe abaixo que extraímos o pacote para nosso diretório local indicando um (.), pois é necessário sempre informar um destino ao utilizar esta opção:

root@server:/tmp/teste# dpkg -x /var/cache/apt/archives/rcconf_2.5_all.deb .
root@server:/tmp/teste# ls -l
total 8
drwxr-xr-x 5 root root 4096 Nov 16  2009 usr
drwxr-xr-x 3 root root 4096 Nov 16  2009 var

 

minimedia

Os comentários estão fechados.