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:
- dglob: produce un elenco di nomi di pacchetti che corrispondono a un modello
- dgrep: cerca una regex in tutti i file in determinati pacchetti
- dpigs: mostra quali pacchetti installati hanno occupato più spazio su disco
- debget – Ottieni un .deb per un pacchetto nel database di APT
- debmany: scegli le pagine man dei pacchetti installati o rimossi
- checkrestart: trova e riavvia i processi che utilizzano versioni obsolete dei file aggiornati
- popbugs: mostra una segnalazione personalizzata di bug critici per il rilascio in base ai pacchetti che utilizzi
- 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.