Sådan bruges 8 nyttige Debian Goodies-hjælpeprogrammer til at styre Debian-pakker


Debian-goodies er en pakke, der inkluderer værktøjskassestil-værktøjer, der bruges til at styre Debian og dets afledte systemer såsom Ubuntu, Kali Linux. Hjælpeprogrammerne under denne pakke er udviklet på en sådan måde, at de kombineres med mange anerkendte shell-værktøjer, og andre er inkluderet, fordi de ikke kan udvikles som deres egne pakker på Debian-baserede Linux-distributioner.

I denne vejledning skal vi se på, hvordan man bruger hjælpeprogrammerne under pakken debian-goodies, som inkluderer dglob, debget, dpigs, dgrep, debmany, checkrestart, popbugs og hvilke-pkg-brød.

Lad os se beskrivelsen af hvert værktøj nedenfor:

  1. dglob - Lav en liste over pakkenavne, der matcher et mønster
  2. dgrep - Søg i alle filer i givne pakker efter en regex
  3. dpigs - Vis hvilke installerede pakker, der har mest diskplads
  4. debget - Få et .deb til en pakke i APTs database
  5. debmany - Vælg manpages af installerede eller fjernede pakker
  6. checkrestart - Finder og genstarter processer, der bruger forældede versioner af opgraderede filer
  7. popbugs - Vis en tilpasset frigivelseskritisk fejlrapport baseret på pakker, du bruger
  8. hvilket-pkg-brød - Fang hvilken pakke der muligvis har brudt en anden

Dette er meget nyttige hjælpeprogrammer, der kan gøre systemadministration meget lettere, når de bruges sammen med andre skalværktøjer. Faktisk viser Debian-goodies-værktøjet flere oplysninger om pakker end standardværktøjer såsom dpkg og apt-værktøjer.

Sådan installeres Debian-godbidder i Debian, Ubuntu og Linux Mint

For at installere debian-goodies-pakken skal du køre denne kommando nedenfor.

# sudo apt-get install debian-goodies

Når debian-goodies-pakken er installeret, er det nu tid til at tjekke brugen af hvert hjælpeprogram, der leveres af denne pakke, i resten af artiklen.

Sådan bruges Debian-Goodies-hjælpeprogrammer

Dglob genererer en liste med navne på pakker eller filer som angivet i et mønster. For at generere navnet på alle pakker skal du blot køre dglob eller inkludere -a-indstillingen.

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

For at finde ud af, om der findes en pakke på dit system, skal du køre dglob med pakke navn. I eksemplet nedenfor skal vi søge efter Firefox, Apache2 og 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

Du kan udskrive en liste over alle filer i den angivne pakke ved hjælp af indstillingerne -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 zilla.org.xpi
/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
....

Dgreb-værktøjet bruges til at søge efter filer i specificerede pakkenavne til et regulært udtryk. Det gennemgår grundlæggende filer af pakker, der er installeret på dit system, og de fleste af de anvendte muligheder er dem, der bruges med grep bortset fra nogle få.

For at specificere et mønster skal du bruge indstillingen -e som følger.

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

For at udskrive navnet på hver inputfil, hvorfra output ville være blevet udskrevet, skal du bruge indstillingen -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
...

For kun at vise matchede dele af en matchende linje skal du bruge indstillingen -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
...

Dette værktøj bruges til at vise pakker, der har brugt mest plads på dit system. Det er meget vigtigt, især når du løber tør for plads og vil fjerne nogle pakker.

For at finde ud af pakker, der bruger mest plads på dit system, skal du blot køre denne kommando.

[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

Du kan bruge indstillingen -H til at læse pakkestørrelser i et menneskeligt læsbart format.

[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

For at specificere et givet antal pakker bortset fra standardværdien, der er 10, skal du bruge indstillingen -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

For at søge hjælp til at bruge dpigs skal du bruge indstillingen -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.

Debatten bruges til at hente en given. Deb til en pakke fra APTs pakkedatabase. I de næste eksempler skal vi hente .deb-filer til apache2-, zip- og tar-hjælpeprogrammer.

[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

Alle de hentede .deb-pakker.

[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

Det bruges til at vælge siderne til manuel indtastning af installerede eller afinstallerede pakker på dit system. Dette værktøj giver dig mulighed for at se alle manpages i en pakke.

Nogle af følgende muligheder kan du bruge med debmany til at vise manpage ved hjælp af din valgte fremviser:

Hvis du bruger KDE-skrivebordsmiljø, skal du bruge -k til at bruge kfmclient.

[email :~# debmany -k tar

Bemærk: Jeg har ikke KDE DE installeret på mit system, så det er svært at vise output fra ovenstående kommando.

Hvis du bruger skrivebordsmiljøet GNOME, skal du bruge indstillingen -g til at bruge gnome-open.

[email :~# debmany -g tar

Hvis du bruger KDE/GNOME/Xfce-skrivebordsmiljø, skal du bruge -x til at bruge kdg-open.

[email :~# debmany -x tar

Sørg for, at ovenstående seere er installeret, før du kan bruge dem, ellers kan du få en fejl.

Chechstart bruges til at finde og genstarte processer, der bruger gamle versioner af filer, der allerede er blevet opgraderet.

For at bruge checkrestart med alle processer skal du bruge indstillingen -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
...

Hvis du kun vil specificere slettede filer, der er knyttet til en given pakke på systemet, skal du bruge indstillingen -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

Du kan generere en detaljeret outputinformation ved hjælp af indstillingen -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

Det bruges til at vise en liste over tilpassede frigivelseskritiske fejl baseret på de pakker, du ofte bruger på dit system. Når du kører popbugs uden mulighed for første gang, viser den dig en besked som den nedenfor.

[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

For at generere popularitets-konkurrenceloggen skal du køre denne kommando nedenfor.

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

Brug indstillingen –output =/sti/til/fil til at gemme output i en fil. Outputfilen skal være en html-fil.

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

For at se outputfilen skal du åbne filen fra webbrowseren ved at angive filplaceringen.

Brug indstillingen -d til at få vist fejlretningsoplysninger.

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

Det bruges til at finde pakker, der har brudt en anden pakke. Nogle gange kan dit system blive brudt af visse pakker, især når du opgraderer det. Derfor, hvilken-kg-brød kan hjælpe dig med at finde de pakker, der har brudt dit system eller en bestemt pakke på systemet.

For at finde ud af pakker, der har brudt apache2, skal du køre denne kommando nedenfor.

[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é

Der er mange andre hjælpeprogrammer relateret til dem, vi har kigget på, som vi kan lære om i efterfølgende artikler. Håber du finder denne guide nyttig, og hvis du får fejl, når du bruger dem eller har andre ideer at tilføje, bedes du sende en kommentar. Bliv forbundet med Tecmint.