Pesquisa de site

Como usar 8 ‘Utilitários Debian Goodies’ úteis para gerenciar pacotes Debian


Debian-goodies é um pacote que inclui utilitários estilo caixa de ferramentas usados para gerenciar o Debian e seus sistemas derivados, como Ubuntu, Kali Linux. Os utilitários deste pacote são desenvolvidos de forma a serem combinados com muitas ferramentas shell reconhecidas e outras são incluídas porque não podem ser desenvolvidas como seus próprios pacotes em distribuições Linux baseadas em Debian.

Neste guia veremos como usar os utilitários do pacote debian-goodies que incluem dglob, debget, dpigs<, dgrep, debmany, checkrestart, popbugs e which-pkg-broke.

Vejamos a descrição de cada ferramenta abaixo:

  1. dglob – Produz uma lista de nomes de pacotes que correspondem a um padrão
  2. dgrep – Pesquise todos os arquivos em determinados pacotes por um regex
  3. dpigs – Mostra quais pacotes instalados ocupam mais espaço em disco
  4. debget – Obtenha um .deb para um pacote no banco de dados do APT
  5. debmany – Escolha páginas de manual de pacotes instalados ou removidos
  6. checkrestart – Encontra e reinicia processos que usam versões desatualizadas de arquivos atualizados
  7. popbugs – Mostra um relatório de bug crítico de lançamento personalizado com base nos pacotes que você usa
  8. qual-pkg-broke – Descubra qual pacote pode ter quebrado outro

Estes são utilitários muito úteis que podem tornar a Administração do Sistema muito mais fácil quando usados com outras ferramentas shell. Na verdade, a ferramenta Debian-goodies mostra mais informações sobre pacotes do que ferramentas padrão como dpkg e apt.

Leia também: Aprenda 15 comandos dpkg e 25 comandos apt-get para gerenciar pacotes no Debian e seus derivados.

Como instalar brindes Debian no Debian, Ubuntu e Linux Mint

Para instalar o pacote debian-goodies, execute este comando abaixo.

sudo apt-get install debian-goodies

Depois que o pacote debian-goodies tiver sido instalado, agora é hora de verificar o uso de cada utilitário fornecido por este pacote no restante do artigo.

Como usar os utilitários Debian-Goodies

1. Utilitário dglob

O dglob gera uma lista de nomes de pacotes ou arquivos conforme especificado em um padrão. Para gerar o nome de todos os pacotes, basta executar dglob ou incluir a opção -a.

root@tecmint:~# dglob 
fonts-sil-abyssinica
libatk-adaptor
openoffice-onlineupdate
libvorbisfile3
libquadmath0
libxkbfile1
linux-sound-base
python-apt-common
python-gi-cairo
libgs9-common
libgom-1.0-common
libqt5qml5
libgtk2.0-bin
libregexp-common-perl
evolution-data-server
libaccount-plugin-generic-oauth
bind9-host
libhtml-tagset-perl
iputils-ping
libcgmanager0
evince
...

Para descobrir se existe um pacote em seu sistema, execute dglob com o nome do pacote. No exemplo abaixo procuraremos por Firefox, Apache2 e debain-goodies.

root@tecmint:~# dglob firefox
firefox-locale-en
unity-scope-firefoxbookmarks
firefox
root@tecmint:~# dglob apache2
apache2
apache2-utils
apache2-bin
apache2-data
root@tecmint:~# dglob debian-goodies
debian-goodies

Você pode imprimir uma lista de todos os arquivos do pacote especificado usando as opções -f.

root@tecmint:~# dglob -f firefox
/usr/share/doc/firefox-locale-en/copyright
/usr/share/doc/firefox-locale-en/changelog.Debian.gz
/usr/lib/firefox-addons/extensions/[email 
/usr/lib/firefox-addons/extensions/[email 
/usr/lib/firefox/distribution/searchplugins/locale/en-ZA/amazondotcom.xml
/usr/lib/firefox/distribution/searchplugins/locale/en-ZA/google.xml
/usr/lib/firefox/distribution/searchplugins/locale/en-ZA/ddg.xml
/usr/lib/firefox/distribution/searchplugins/locale/en-GB/google.xml
/usr/lib/firefox/distribution/searchplugins/locale/en-GB/amazon-en-GB.xml
/usr/lib/firefox/distribution/searchplugins/locale/en-GB/ddg.xml
/usr/lib/firefox/webapprt/extensions/[email 
/usr/lib/firefox/webapprt/extensions/[email 
/usr/share/unity/scopes/web/firefoxbookmarks.scope
/usr/share/unity-scopes/firefoxbookmarks/unity_firefoxbookmarks_daemon.py
/usr/share/unity-scopes/firefoxbookmarks/__init__.py
/usr/share/doc/unity-scope-firefoxbookmarks/copyright
....

2. Como usar o utilitário dgrep

O utilitário dgreb é usado para procurar arquivos em nomes de pacotes especificados para uma expressão regular. Basicamente, ele greps através de arquivos de pacotes que estão instalados em seu sistema e a maioria das opções usadas são aquelas usadas com grep, exceto algumas.

Para especificar um padrão, use a opção -e conforme a seguir.

root@tecmint:~# dgrep -e README apache2
/usr/sbin/apache2ctl:        echo Setting ulimit failed. See README.Debian for more information. >&2
/usr/sbin/a2enmod:                info(     "See /usr/share/doc/apache2/README.Debian.gz on "
/etc/apache2/mods-available/autoindex.conf:	AddIcon /icons/hand.right.gif README
/etc/apache2/mods-available/autoindex.conf:	# ReadmeName is the name of the README file the server will look for by
/etc/apache2/mods-available/autoindex.conf:	ReadmeName README.html
/etc/apache2/mods-available/cache_disk.conf:	# /usr/share/doc/apache2/README.Debian, and the htcacheclean(8)
/etc/apache2/sites-available/default-ssl.conf:		#   /usr/share/doc/apache2/README.Debian.gz for more info.
...

Para imprimir o nome de cada arquivo de entrada do qual a saída seria impressa, use a opção -l.

root@tecmint:~# dgrep -l conf apache2
/usr/sbin/a2query
/usr/sbin/apache2ctl
/usr/sbin/a2enmod
/usr/share/doc/apache2/migrate-sites.pl
/usr/share/doc/apache2/copyright
/usr/share/doc/apache2/README.multiple-instances
/usr/share/doc/apache2/examples/setup-instance
/usr/share/doc/apache2/examples/secondary-init-script
/usr/share/doc/apache2/README.backtrace
/usr/share/apache2/apache2-maintscript-helper
/usr/share/lintian/overrides/apache2
/etc/bash_completion.d/apache2
/etc/init.d/apache2
...

Para exibir apenas partes correspondentes de uma linha correspondente, use a opção -o.

root@tecmint:~# dgrep -o conf apache2
/usr/sbin/a2query:conf
/usr/sbin/a2query:conf
/usr/sbin/a2query:conf
/usr/sbin/a2query:conf
/usr/sbin/a2query:conf
/usr/sbin/a2query:conf
/usr/sbin/a2query:conf
/usr/sbin/a2query:conf
...

3. Como usar o utilitário dpigs

Este utilitário é usado para mostrar os pacotes que ocuparam mais espaço no seu sistema. É muito importante principalmente quando você está ficando sem espaço e deseja remover alguns pacotes.

Para descobrir os pacotes que consomem mais espaço no seu sistema, basta executar este comando.

root@tecmint:~# dpigs
158762 linux-image-extra-4.2.0-16-generic
157066 linux-image-extra-3.19.0-31-generic
155037 wine1.8-amd64
143459 wine1.8-i386
103364 linux-firmware
100412 firefox
96741 openjdk-8-jre-headless
96302 libgl1-mesa-dri
90808 thunderbird
90652 liboxideqtcore0

Você pode usar a opção -H para ler tamanhos de pacotes em um formato legível por humanos.

root@tecmint:~# dpigs -H
 155.0M linux-image-extra-4.2.0-16-generic
 153.4M linux-image-extra-3.19.0-31-generic
 151.4M wine1.8-amd64
 140.1M wine1.8-i386
 100.9M linux-firmware
  98.1M firefox
  94.5M openjdk-8-jre-headless
  94.0M libgl1-mesa-dri
  88.7M thunderbird
  88.5M liboxideqtcore0

Para especificar um determinado número de pacotes além do padrão que é 10, use a opção -n.

root@tecmint:~# dpigs -H -n 15
 155.0M linux-image-extra-4.2.0-16-generic
 153.4M linux-image-extra-3.19.0-31-generic
 151.4M wine1.8-amd64
 140.1M wine1.8-i386
 100.9M linux-firmware
  98.1M firefox
  94.5M openjdk-8-jre-headless
  94.0M libgl1-mesa-dri
  88.7M thunderbird
  88.5M liboxideqtcore0
  87.9M libgl1-mesa-dri
  81.3M openoffice-core04
  77.8M fonts-horai-umefont
  64.2M linux-headers-4.2.0-16
  61.5M ubuntu-docs

Para buscar ajuda no uso de dpigs, use a opção -h.

root@tecmint:~# dpigs -h
Usage: dpigs [options]

Options:
  -n, --lines=N
    Display the N largest packages on the system (default 10).
  -s, --status=status-file
    Use status-file instead of the default dpkg status file.
  -S, --source
    Display the largest source packages of binary packages installed
    on the system.
  -H, --human-readable
    Display package sizes in human-readable format (like ls -lh or du -h)
  -h, --help
    Display this message.

4. Como usar o utilitário debget

O debget é usado para obter um determinado .deb para um pacote do banco de dados de pacotes do APT. Nos próximos exemplos iremos buscar arquivos .deb para os utilitários apache2, zip e tar.

root@tecmint:~# debget apache2
(apache2 -> 2.4.12-2ubuntu2)
root@tecmint:~# debget zip
(zip -> 3.0-11)
Downloading zip from http://in.archive.ubuntu.com/ubuntu/pool/main/z/zip/zip_3.0-11_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--   0  154k    0  1211    0     0   2039      0  0:01:17 --:--:--  0:01:17  47  154k   47 75059    0     0  44694      0  0:00:03  0:00:01  0:00:02 100  154k  100  154k    0     0  74182      0  0:00:02  0:00:02 --:--:-- 74220
root@tecmint:~# debget tar 
(tar -> 1.27.1-2)
Downloading tar from http://in.archive.ubuntu.com/ubuntu/pool/main/t/tar/tar_1.27.1-2_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--  15  191k   15 30155    0     0  48338      0  0:00:04 --:--:--  0:00:04 100  191k  100  191k    0     0   201k      0 --:--:-- --:--:-- --:--:--  201k

Todos os pacotes .deb obtidos.

root@tecmint:~# dir -hl
total 348K
-rw-r--r-- 1 root root 86K Dec 30 12:46 apache2_2.4.7-1ubuntu4.6_amd64.deb
-rw-r--r-- 1 root root 192K Dec 30 12:46 tar_1.27.1-2_amd64.deb
-rw-r--r-- 1 root root 155K Dec 30 12:46 zip_3.0-11_amd64.deb

5. Como usar o utilitário debmany

É usado para selecionar as páginas de entrada manual de pacotes instalados ou desinstalados em seu sistema. Este utilitário permite visualizar todas as páginas de manual de um pacote.

Algumas das opções a seguir você pode usar com debmany para exibir a página de manual usando o visualizador de sua escolha:

Se você usa o ambiente de desktop KDE, use a opção -k para usar o kfmclient.

root@tecmint:~# debmany -k tar

Nota: não tenho o KDE DE instalado no meu sistema, por isso é difícil mostrar a saída do comando acima.

Se você usa o ambiente de área de trabalho GNOME, use a opção -g para usar gnome-open.

root@tecmint:~# debmany -g tar

Se você usa o ambiente de desktop KDE/GNOME/Xfce, use a opção -x para usar kdg-open.

root@tecmint:~# debmany -x tar

Certifique-se de que os visualizadores acima estejam instalados antes de poder usá-los, caso contrário você poderá receber um erro.

6. Como usar o utilitário checkrestart

O chechstart é usado para localizar e reiniciar processos que usam versões antigas de arquivos que já foram atualizados.

Para usar checkrestart com todos os processos, use a opção -a.

root@tecmint:~# checkrestart -a
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
Found 30 processes using old versions of upgraded files
(28 distinct programs)
(23 distinct packages)

Of these, 1 seem to contain systemd service definitions or init scripts which can be used to restart them.
The following packages seem to have definitions that could be used
to restart their services:
openssh-server:
	1947	/usr/sbin/sshd
	1889	/usr/sbin/sshd
These are the initd scripts:
service ssh restart
...

Para especificar apenas os arquivos excluídos do processo anexados a um determinado pacote no sistema, use a opção -p.

root@tecmint:~# checkrestart -p
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
Found 0 processes using old versions of upgraded files

Você pode gerar informações de saída detalhadas usando a opção -v.

root@tecmint:~# checkrestart -v
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
Found 1 processes using old versions of upgraded files
(1 distinct program)
[DEBUG] Process /usr/bin/update-manager (PID: 2027) 
List of deleted files in use:
	/var/cache/apt/pkgcache.bin
	/var/lib/dpkg/status (deleted)
	/var/cache/apt/pkgcache.bin
	/var/lib/dpkg/status (deleted)
	/var/cache/apt/pkgcache.bin
	/var/lib/dpkg/status (deleted)
	/var/cache/apt/pkgcache.bin
	/var/lib/dpkg/status (deleted)
[DEBUG] Running:['dpkg-query', '--search', '/usr/bin/update-manager']
[DEBUG] Reading line from dpkg-query: update-manager: /usr/bin/update-manager

[DEBUG] Found package update-manager for program /usr/bin/update-manager
(1 distinct packages)
[DEBUG] Running:['dpkg-query', '--listfiles', 'update-manager']
These processes (1) do not seem to have an associated init script to restart them:
update-manager:
	2027	/usr/bin/update-manager

7. Como usar o utilitário popbugs

Ele é usado para mostrar uma lista de bugs críticos de lançamento personalizados com base nos pacotes que você normalmente usa em seu sistema. Quando você executa popbugs sem qualquer opção pela primeira vez, será exibida uma mensagem como a abaixo.

root@tecmint:~# popbugs

There is no popularity-contest data present on your system.  This
probably means that popularity-contest has not yet run since it
was installed.  Try waiting for /etc/cron.daily/popularity-contest to
to collect some data or manually run (as root user):

    /usr/sbin/popularity-contest >/var/log/popularity-contest

Para gerar o log do concurso de popularidade, execute o comando abaixo.

root@tecmint:~# /usr/sbin/popularity-contest > /var/log/popularity-contest

Para armazenar a saída em um arquivo, use a opção –output=/path/to/file. O arquivo de saída deve ser um arquivo html.

root@tecmint:~# popbugs --output=/tmp/output.html

Para visualizar o arquivo de saída, abra o arquivo no navegador da web especificando o local do arquivo.

Para exibir informações de depuração, use a opção -d.

root@tecmint:~# popbugs --d
POPCON: Adding package zeitgeist-core
POPCON: Adding package upstart
POPCON: Adding package unity-gtk2-module
POPCON: Adding package whoopsie
POPCON: Adding package xserver-xorg-input-evdev
POPCON: Adding package unity-services
POPCON: Adding package zlib1g
POPCON: Adding package xserver-xorg-core
..

8. Como usar o utilitário which-pkg-broke

É usado para encontrar pacotes que quebraram outro pacote. Às vezes, seu sistema pode ser corrompido por certos pacotes, especialmente durante a atualização. Portanto qual-pkg-broke pode ajudá-lo a encontrar os pacotes que quebraram seu sistema ou um pacote específico no sistema.

Para descobrir pacotes que quebraram o apache2, execute este comando abaixo.

root@tecmint:~# which-pkg-broke apache2 
Package apache2 has no install time info
Package mysql-common has no install time info
Package libaprutil1-ldap has no install time info
Package  has no install time info
Package libmysqlclient18 has no install time info
Package  has no install time info
Package libaprutil1-dbd-sqlite3 has no install time info
Package  has no install time info
Package libaprutil1-dbd-mysql has no install time info
Package apache2-utils has no install time info
Package libpq5 has no install time info
Package apache2-data has no install time info
Package libaprutil1-dbd-pgsql has no install time info
Package libaprutil1-dbd-odbc has no install time info
libacl1:amd64                                          Wed Apr 22 17:31:54 2015
libattr1:amd64                                         Wed Apr 22 17:31:54 2015
insserv                                                Wed Apr 22 17:31:54 2015
libc6:amd64                                            Wed Apr 22 17:31:55 2015
...

Resumo

Existem muitos outros utilitários relacionados aos que examinamos, sobre os quais poderemos aprender em artigos subsequentes. Espero que este guia seja útil e se você encontrar algum erro ao usá-lo ou tiver alguma outra ideia para adicionar, poste um comentário. Fique conectado com a Tecmint.