Ricerca nel sito web

Come utilizzare 8 utili 'Debian Goodies Utilities' per gestire i pacchetti Debian


Debian-goodies è un pacchetto che include utilità in stile toolbox utilizzate per gestire Debian e i suoi sistemi derivati come Ubuntu, Kali Linux. Le utilità contenute in questo pacchetto sono sviluppate in modo tale da combinarsi con molti strumenti shell riconosciuti e altri sono inclusi perché non possono essere sviluppati come pacchetti propri su distribuzioni Linux basate su Debian.

In questa guida vedremo come utilizzare le utilità del pacchetto debian-goodies che include dglob, debget, dpigs<, dgrep, debmany, checkrestart, popbugs e what-pkg-broke.

Vediamo di seguito la descrizione di ciascuno strumento:

  1. dglob: produce un elenco di nomi di pacchetti che corrispondono a un modello
  2. dgrep: cerca una regex in tutti i file in determinati pacchetti
  3. dpigs: mostra quali pacchetti installati hanno occupato più spazio su disco
  4. debget – Ottieni un .deb per un pacchetto nel database di APT
  5. debmany: scegli le pagine man dei pacchetti installati o rimossi
  6. checkrestart: trova e riavvia i processi che utilizzano versioni obsolete dei file aggiornati
  7. popbugs: mostra una segnalazione personalizzata di bug critici per il rilascio in base ai pacchetti che utilizzi
  8. quale-pacchetto-rotto: individua quale pacchetto potrebbe averne rotto un altro

Queste sono utilità molto utili che possono rendere l'amministrazione del sistema molto più semplice se utilizzate con altri strumenti della shell. In effetti, lo strumento Debian-goodies mostra più informazioni sui pacchetti rispetto agli strumenti standard come dpkg e apt.

Leggi anche: impara 15 comandi dpkg e 25 comandi apt-get per gestire i pacchetti in Debian e le sue derivate.

Come installare i gadget Debian in Debian, Ubuntu e Linux Mint

Per installare il pacchetto debian-goodies, esegui questo comando di seguito.

sudo apt-get install debian-goodies

Una volta installato il pacchetto debian-goodies, è giunto il momento di verificare l'utilizzo di ciascuna utilità fornita da questo pacchetto nel resto dell'articolo.

Come usare le utilità Debian-Goodies

1. Utilità dglob

Il dglob genera un elenco di nomi di pacchetti o file come specificato in un modello. Per generare il nome di tutti i pacchetti, esegui semplicemente dglob o includi l'opzione -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
...

Per scoprire se esiste un pacchetto sul tuo sistema, esegui dglob con il nome del pacchetto. Nell'esempio seguente cercheremo 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

Puoi stampare un elenco di tutti i file nel pacchetto specificato utilizzando le opzioni -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. Come utilizzare l'utilità dgrep

L'utilità dgreb viene utilizzata per cercare file nei nomi di pacchetto specificati per un'espressione regolare. Fondamentalmente greps attraverso i file dei pacchetti installati sul tuo sistema e la maggior parte delle opzioni utilizzate sono quelle utilizzate con grep tranne alcune.

Per specificare un modello, utilizzare l'opzione -e come segue.

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.
...

Per stampare il nome di ciascun file di input da cui sarebbe stato stampato l'output, usa l'opzione -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
...

Per visualizzare solo le parti corrispondenti di una riga corrispondente, utilizzare l'opzione -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. Come utilizzare l'utilità dpigs

Questa utility viene utilizzata per mostrare i pacchetti che hanno utilizzato più spazio sul tuo sistema. È molto importante soprattutto quando stai esaurendo lo spazio e desideri rimuovere alcuni pacchetti.

Per scoprire i pacchetti che consumano più spazio sul tuo sistema, esegui semplicemente questo 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

Puoi utilizzare l'opzione -H per leggere le dimensioni dei pacchetti in un formato leggibile dall'uomo.

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

Per specificare un determinato numero di pacchetti oltre a quello predefinito che è 10, utilizza l'opzione -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

Per cercare aiuto nell'uso di dpigs, usa l'opzione -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. Come utilizzare l'utilità debitot

Il debget viene utilizzato per ottenere un determinato .deb per un pacchetto dal database dei pacchetti di APT. Nei prossimi esempi recupereremo file .deb per le utilità 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

Tutti i pacchetti .deb recuperati.

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. Come utilizzare l'utilità debmany

Viene utilizzato per selezionare le pagine di immissione manuale dei pacchetti installati o disinstallati sul sistema. Questa utilità consente di visualizzare tutte le manpage di un pacchetto.

Alcune delle seguenti opzioni che puoi utilizzare con debmany per visualizzare la manpage utilizzando il tuo visualizzatore preferito:

Se usi l'ambiente desktop KDE, usa l'opzione -k per usare kfmclient.

root@tecmint:~# debmany -k tar

Nota: non ho KDE DE installato sul mio sistema, quindi è difficile mostrare l'output del comando precedente.

Se utilizzi l'ambiente desktop GNOME, utilizza l'opzione -g per utilizzare gnome-open.

root@tecmint:~# debmany -g tar

Se utilizzi l'ambiente desktop KDE/GNOME/Xfce, utilizza l'opzione -x per utilizzare kdg-open.

root@tecmint:~# debmany -x tar

Assicurati che i visualizzatori sopra indicati siano installati prima di poterli utilizzare, altrimenti potresti ricevere un errore.

6. Come utilizzare l'utilità checkrestart

chechstart viene utilizzato per trovare e riavviare i processi che utilizzano vecchie versioni di file che sono già stati aggiornati.

Per utilizzare checkrestart con tutti i processi, utilizza l'opzione -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
...

Per specificare solo l'elaborazione dei file eliminati allegati a un determinato pacchetto sul sistema, utilizzare l'opzione -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

Puoi generare informazioni di output dettagliate utilizzando l'opzione -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. Come utilizzare l'utilità popbugs

Viene utilizzato per mostrare un elenco di bug critici per il rilascio personalizzati in base ai pacchetti comunemente utilizzati nel sistema. Quando esegui popbugs senza alcuna opzione per la prima volta, ti verrà mostrato un messaggio come quello qui sotto.

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

Per generare il registro popolarità-contest, esegui questo comando di seguito.

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

Per memorizzare l'output in un file, utilizza l'opzione –output=/percorso/del/file. Il file di output dovrebbe essere un file html.

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

Per visualizzare il file di output, aprire il file dal browser Web specificando il percorso del file.

Per visualizzare le informazioni di debug, utilizza l'opzione -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. Come utilizzare l'utilità which-pkg-broke

Viene utilizzato per trovare pacchetti che hanno danneggiato un altro pacchetto. A volte il tuo sistema potrebbe essere danneggiato da alcuni pacchetti soprattutto durante l'aggiornamento. Pertanto quale-pkg-broke può aiutarti a trovare i pacchetti che hanno danneggiato il tuo sistema o un particolare pacchetto sul sistema.

Per scoprire i pacchetti che hanno danneggiato apache2, esegui questo comando di seguito.

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
...

Riepilogo

Esistono molte altre utilità correlate a quelle che abbiamo esaminato, di cui potremmo conoscere negli articoli successivi. Spero che questa guida ti sia utile e se riscontri errori durante l'utilizzo o hai altre idee da aggiungere, pubblica un commento. Rimani connesso a Tecmint.