Cómo utilizar 8 utilidades útiles de Debian Goodies para administrar paquetes Debian


Debian-goodies es un paquete que incluye utilidades de estilo caja de herramientas que se utilizan para administrar Debian y sus sistemas derivados, como Ubuntu, Kali Linux. Las utilidades de este paquete se desarrollan de tal manera que se combinan con muchas herramientas de shell reconocidas y se incluyen otras porque no se pueden desarrollar como sus propios paquetes en distribuciones de Linux basadas en Debian.

En esta guía veremos cómo usar las utilidades del paquete debian-goodies que incluyen dglob, debget, dpigs, dgrep, debmany, checkrestart, popbugs y which-pkg-broken.

Veamos la descripción de cada herramienta a continuación:

  1. dglob: genera una lista de nombres de paquetes que coinciden con un patrón
  2. dgrep: busca todos los archivos en paquetes dados para una expresión regular
  3. dpigs: muestra qué paquetes instalados ocuparon más espacio en el disco
  4. debget: obtenga un .deb para un paquete en la base de datos de APT
  5. debmany: elija las páginas de manual de los paquetes instalados o eliminados
  6. checkrestart: busca y reinicia procesos que utilizan versiones desactualizadas de archivos actualizados
  7. popbugs: muestra un informe personalizado de errores críticos de la versión basado en los paquetes que usas
  8. which-pkg-broken: detecta qué paquete podría haber roto otro

Estas son utilidades muy útiles que pueden hacer que la administración del sistema sea mucho más fácil cuando se usa con otras herramientas de shell. De hecho, la herramienta Debian-goodies muestra más información sobre los paquetes que las herramientas estándar como dpkg y apt.

Cómo instalar Debian-goodies en Debian, Ubuntu y Linux Mint

Para instalar el paquete debian-goodies, ejecute este comando a continuación.

# sudo apt-get install debian-goodies

Una vez que se ha instalado el paquete debian-goodies, es el momento de comprobar el uso de cada utilidad proporcionada por este paquete en el resto del artículo.

Cómo utilizar las utilidades de Debian-Goodies

El dglob genera una lista de nombres de paquetes o archivos como se especifica en un patrón. Para generar el nombre de todos los paquetes, simplemente ejecute dglob o incluya la opción -a.

[email protected]:~# 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 saber si existe un paquete en su sistema, ejecute dglob con el nombre del paquete. En el siguiente ejemplo, buscaremos Firefox, Apache2 y debain-goodies.

[email protected]:~# dglob firefox
firefox-locale-en
unity-scope-firefoxbookmarks
firefox
[email protected]:~# dglob apache2
apache2
apache2-utils
apache2-bin
apache2-data
[email protected]:~# dglob debian-goodies
debian-goodies

Puede imprimir una lista de todos los archivos en el paquete especificado usando las opciones -f .

[email protected]:~# 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 protected]
/usr/lib/firefox-addons/extensions/[email protected]
/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 protected]
/usr/lib/firefox/webapprt/extensions/[email protected]
/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
....

La utilidad dgreb se utiliza para buscar archivos en nombres de paquetes específicos para una expresión regular. Básicamente, revisa archivos de paquetes que están instalados en su sistema y la mayoría de las opciones que se usan con son las que se usan con grep, excepto algunas.

Para especificar un patrón, use la opción -e de la siguiente manera.

[email protected]:~# 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 el nombre de cada archivo de entrada desde el cual se imprimió la salida, use la opción -l .

[email protected]:~# 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 mostrar solo las partes coincidentes de una línea coincidente, use la opción -o .

[email protected]:~# 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
...

Esta utilidad se utiliza para mostrar los paquetes que han utilizado más espacio en su sistema. Es muy importante especialmente cuando se está quedando sin espacio y desea eliminar algunos paquetes.

Para averiguar los paquetes que consumen más espacio en su sistema, simplemente ejecute este comando.

[email protected]:~# 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

Puede utilizar la opción -H para leer los tamaños de los paquetes en un formato legible por humanos.

[email protected]:~# 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 un número determinado de paquetes además del predeterminado que es 10, use la opción -n .

[email protected]:~# 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 ayuda para usar dpigs, use la opción -h .

[email protected]:~# 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.

El debget se usa para obtener un .deb dado para un paquete de la base de datos de paquetes de APT. En los siguientes ejemplos, buscaremos archivos .deb para las utilidades apache2, zip y tar.

[email protected]:~# debget apache2
(apache2 -> 2.4.12-2ubuntu2)
[email protected]:~# 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
[email protected]:~# 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 los paquetes .deb recuperados.

[email protected]:~# 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

Se utiliza para seleccionar las páginas de entrada manual de los paquetes instalados o desinstalados en su sistema. Esta utilidad le permite ver todas las páginas de manual de un paquete.

Algunas de las siguientes opciones que puede utilizar con debmany para mostrar la página de manual con el visor de su elección:

Si usa el entorno de escritorio KDE, use la opción -k para usar kfmclient.

[email protected]:~# debmany -k tar

Nota: No tengo KDE DE instalado en mi sistema, por lo que es difícil mostrar el resultado del comando anterior.

Si usa el entorno de escritorio GNOME, use la opción -g para usar gnome-open.

[email protected]:~# debmany -g tar

Si usa el entorno de escritorio KDE/GNOME/Xfce, use la opción -x para usar kdg-open.

[email protected]:~# debmany -x tar

Asegúrese de que los visores anteriores estén instalados antes de poder usarlos o, de lo contrario, puede obtener un error.

El chechstart se utiliza para buscar y reiniciar procesos que utilizan versiones antiguas de archivos que ya se han actualizado.

Para usar checkrestart con todos los procesos, use la opción -a .

[email protected]:~# 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 solo los archivos borrados del proceso que están adjuntos a un paquete determinado en el sistema, use la opción -p .

[email protected]:~# 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

Puede generar una información de salida detallada utilizando la opción -v .

[email protected]:~# 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

Se utiliza para mostrar una lista de errores críticos de lanzamiento personalizados según los paquetes que usa comúnmente en su sistema. Cuando ejecute popbugs sin ninguna opción por primera vez, le mostrará un mensaje como el que se muestra a continuación.

[email protected]:~# 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 generar el registro del concurso de popularidad, ejecute este comando a continuación.

[email protected]:~# /usr/sbin/popularity-contest > /var/log/popularity-contest

Para almacenar la salida en un archivo, use la opción –output u003d/ruta/a/archivo. El archivo de salida debe ser un archivo html.

[email protected]:~# popbugs --output=/tmp/output.html

Para ver el archivo de salida, abra el archivo desde el navegador web especificando la ubicación del archivo.

Para mostrar información de depuración, use la opción -d .

[email protected]:~# 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
..

Se utiliza para encontrar paquetes que han roto otro paquete. A veces, ciertos paquetes pueden dañar su sistema, especialmente al actualizarlo. Por lo tanto, which-pkg-broken puede ayudarlo a encontrar los paquetes que han roto su sistema o un paquete en particular en el sistema.

Para averiguar los paquetes que han roto apache2, ejecute este comando a continuación.

[email protected]:~# 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
...

Resumen

Hay muchas otras utilidades relacionadas con las que hemos visto, de las que podemos aprender en artículos posteriores. Espero que encuentre útil esta guía y si obtiene algún error al usarlos o tiene alguna otra idea para agregar, publique un comentario. Mantente conectado a Tecmint.