Com utilitzar 8 utilitats útils de Debian per gestionar paquets de Debian


Debian-goodies és un paquet que inclou utilitats d'estil caixa d'eines que s'utilitzen per gestionar Debian i els seus sistemes derivats com Ubuntu, Kali Linux. Les utilitats d'aquest paquet es desenvolupen de manera que es combinen amb moltes eines d'intèrpret d'ordres reconegudes i s'inclouen d'altres perquè no es poden desenvolupar com a paquets propis en distribucions Linux basades en Debian.

En aquesta guia veurem com utilitzar les utilitats del paquet debian-goodies que inclouen dglob, debget, dpigs, dgrep, debmany, checkrstart, popbugs i which-pkg-broke.

Vegem la descripció de cada eina a continuació:

  1. dglob: produeix una llista de noms de paquets que coincideixen amb un patró
  2. dgrep: cerca una expressió regular en tots els fitxers dels paquets determinats
  3. dpigs: mostra quins paquets instal·lats ocupaven més espai en disc
  4. debget: obteniu un .deb per a un paquet a la base de dades de l'APT
  5. debmany: tria les pàgines de manual dels paquets instal·lats o eliminats
  6. checkrestart: cerca i reinicia processos que utilitzen versions obsoletes dels fitxers actualitzats
  7. popbugs: mostra un informe d'errors crítics de llançament personalitzat basat en els paquets que utilitzeu
  8. which-pkg-broke: detecta quin paquet podria haver trencat un altre

Aquestes són utilitats molt útils que poden fer que l'administració del sistema sigui molt més fàcil quan s'utilitza amb altres eines de shell. De fet, l'eina Debian-goodies mostra més informació sobre els paquets que les eines estàndard com ara dpkg i les eines apt.

Com instal·lar Debian-goodies a Debian, Ubuntu i Linux Mint

Per instal·lar el paquet debian-goodies, executeu aquesta comanda a continuació.

# sudo apt-get install debian-goodies

Un cop instal·lat el paquet debian-goodies, ara és el moment de comprovar l'ús de cada utilitat proporcionada per aquest paquet a la resta de l'article.

Com utilitzar les utilitats Debian-Goodies

El dglob genera una llista de noms de paquets o fitxers tal com s'especifica en un patró. Per generar el nom de tots els paquets, simplement executeu dglob o incloeu l'opció -a.

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

Per esbrinar si existeix un paquet al vostre sistema, executeu dglob amb el nom del paquet. A l'exemple següent buscarem Firefox, Apache2 i debain-goodies.

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

Podeu imprimir una llista de tots els fitxers del paquet especificat utilitzant les opcions -f.

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

La utilitat dgreb s'utilitza per cercar fitxers en noms de paquets especificats per a una expressió regular. Bàsicament rastreja els fitxers dels paquets instal·lats al vostre sistema i la majoria de les opcions que s'utilitzen són les que s'utilitzen amb grep, excepte unes quantes.

Per especificar un patró, utilitzeu l'opció -e de la següent manera.

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

Per imprimir el nom de cada fitxer d'entrada des del qual s'hauria imprès la sortida, utilitzeu l'opció -l.

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

Per mostrar només les parts coincidents d'una línia coincident, utilitzeu l'opció -o.

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

Aquesta utilitat s'utilitza per mostrar els paquets que han utilitzat més espai al vostre sistema. És molt important sobretot quan us quedeu sense espai i voleu eliminar alguns paquets.

Per esbrinar els paquets que consumeixen més espai al vostre sistema, només heu d'executar aquesta ordre.

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

Podeu utilitzar l'opció -H per llegir les mides dels paquets en un format llegible per humans.

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

Per especificar un nombre determinat de paquets a part del predeterminat que és 10, utilitzeu l'opció -n.

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

Per buscar ajuda per utilitzar dpigs, utilitzeu l'opció -h.

[email :~# 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 s'utilitza per obtenir un determinat .deb per a un paquet de la base de dades de paquets d'APT. En els exemples següents buscarem fitxers .deb per a les utilitats apache2, zip i tar.

[email :~# debget apache2
(apache2 -> 2.4.12-2ubuntu2)
[email :~# 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 :~# 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

Tots els paquets .deb obtinguts.

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

S'utilitza per seleccionar les pàgines d'entrada manual dels paquets instal·lats o desinstal·lats al vostre sistema. Aquesta utilitat us permet veure totes les pàgines de manual d'un paquet.

Algunes de les opcions següents que podeu utilitzar amb debmany per mostrar la pàgina de manual mitjançant el visualitzador que trieu:

Si utilitzeu l'entorn d'escriptori KDE, utilitzeu l'opció -k per utilitzar kfmclient.

[email :~# debmany -k tar

Nota: no tinc KDE DE instal·lat al meu sistema, de manera que és difícil mostrar la sortida de l'ordre anterior.

Si utilitzeu l'entorn d'escriptori GNOME, utilitzeu l'opció -g per utilitzar gnome-open.

[email :~# debmany -g tar

Si utilitzeu l'entorn d'escriptori KDE/GNOME/Xfce, utilitzeu l'opció -x per utilitzar kdg-open.

[email :~# debmany -x tar

Assegureu-vos que els visors anteriors estiguin instal·lats abans de poder-los utilitzar o, en cas contrari, podeu rebre un error.

El chechstart s'utilitza per trobar i reiniciar processos que utilitzen versions antigues de fitxers que ja s'han actualitzat.

Per utilitzar checkrstart amb tots els processos, utilitzeu l'opció -a.

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

Per especificar només processar fitxers suprimits que s'adjunten a un paquet determinat al sistema, utilitzeu l'opció -p.

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

Podeu generar una informació de sortida detallada utilitzant l'opció -v.

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

S'utilitza per mostrar una llista d'errors personalitzats crítics per al llançament en funció dels paquets que utilitzeu habitualment al vostre sistema. Quan executeu popbugs sense cap opció per primera vegada, us mostrarà un missatge com el següent.

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

Per generar el registre del concurs de popularitat, executeu aquesta ordre a continuació.

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

Per emmagatzemar la sortida en un fitxer, utilitzeu l'opció –output=/path/to/file. El fitxer de sortida hauria de ser un fitxer html.

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

Per veure el fitxer de sortida, obriu el fitxer des del navegador web especificant la ubicació del fitxer.

Per mostrar informació de depuració, utilitzeu l'opció -d.

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

S'utilitza per trobar paquets que han trencat un altre paquet. De vegades, el vostre sistema es pot trencar per certs paquets, especialment quan l'actualitzeu. Per tant, which-pkg-broke us pot ajudar a trobar els paquets que han trencat el vostre sistema o un paquet concret del sistema.

Per esbrinar paquets que han trencat apache2, executeu aquesta ordre a continuació.

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

Resum

Hi ha moltes altres utilitats relacionades amb les que hem mirat, de les quals podrem conèixer en articles posteriors. Espero que aquesta guia us sigui útil i si trobeu algun error en utilitzar-la o teniu alguna altra idea per afegir, deixeu un comentari. Mantingueu-vos connectat amb Tecmint.