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:
- dglob – Produz uma lista de nomes de pacotes que correspondem a um padrão
- dgrep – Pesquise todos os arquivos em determinados pacotes por um regex
- dpigs – Mostra quais pacotes instalados ocupam mais espaço em disco
- debget – Obtenha um .deb para um pacote no banco de dados do APT
- debmany – Escolha páginas de manual de pacotes instalados ou removidos
- checkrestart – Encontra e reinicia processos que usam versões desatualizadas de arquivos atualizados
- popbugs – Mostra um relatório de bug crítico de lançamento personalizado com base nos pacotes que você usa
- 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.