Hvordan bruke 8 nyttige Debian Goodies-verktøy for å administrere Debian-pakker


Debian-goodies er en pakke som inkluderer verktøy i verktøykassestil som brukes til å administrere Debian og dets avledede systemer som Ubuntu, Kali Linux. Verktøyene under denne pakken er utviklet på en slik måte å kombinere med mange anerkjente skallverktøy, og andre er inkludert fordi de ikke kan utvikles som sine egne pakker på Debian-baserte Linux-distribusjoner.

I denne veiledningen skal vi se på hvordan du bruker verktøyene under debian-goodies-pakken som inkluderer dglob, debget, dpigs, dgrep, debmany, checkrestart, popbugs og which-pkg-broke.

La oss se beskrivelsen av hvert verktøy nedenfor:

  1. dglob – Lag en liste over pakkenavn som samsvarer med et mønster
  2. dgrep – Søk i alle filer i gitte pakker etter et regulært uttrykk
  3. dpigs – Vis hvilke installerte pakker som tok mest diskplass
  4. debget – Skaff en .deb for en pakke i APTs database
  5. debmany – Velg manpages for installerte eller fjernede pakker
  6. sjekk omstart – Finner og starter på nytt prosesser som bruker utdaterte versjoner av oppgraderte filer
  7. popbugs – Vis en tilpasset utgivelseskritisk feilrapport basert på pakker du bruker
  8. which-pkg-broke – Fang hvilken pakke som kan ha ødelagt en annen

Dette er veldig nyttige verktøy som kan gjøre systemadministrasjon mye enklere når de brukes med andre skallverktøy. Faktisk viser Debian-goodies-verktøyet mer informasjon om pakker enn standardverktøy som dpkg og apt-verktøy.

Hvordan installere Debian-godbiter i Debian, Ubuntu og Linux Mint

For å installere debian-goodies-pakken, kjør denne kommandoen nedenfor.

# sudo apt-get install debian-goodies

Når debian-goodies-pakken er installert, er det nå på tide å sjekke bruken av hvert verktøy som tilbys av denne pakken i resten av artikkelen.

Hvordan bruke Debian-Goodies Utilities

Dgloben genererer en liste over navn på pakker eller filer som spesifisert i et mønster. For å generere navnet på alle pakkene, kjør ganske enkelt dglob eller inkluderer -a-alternativet.

[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 å finne ut om det finnes en pakke på systemet ditt, kjør dglob med pakkenavn. I eksemplet nedenfor skal vi søke etter 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 skrive ut en liste over alle filene i den angitte pakken ved å bruke -f alternativene.

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

Dgreb-verktøyet brukes til å søke etter filer i spesifiserte pakkenavn for et regulært uttrykk. Det går i utgangspunktet gjennom filer med pakker som er installert på systemet ditt, og de fleste alternativene som brukes med er de som brukes med grep bortsett fra noen få.

For å spesifisere et mønster, bruk -e-alternativet 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 å skrive ut navnet på hver inndatafil som utdata ville blitt skrevet ut fra, bruk -l-alternativet.

[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 å vise bare samsvarende deler av en samsvarende linje, bruk -o-alternativet.

[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 verktøyet brukes til å vise pakker som har brukt mest plass på systemet ditt. Det er veldig viktig spesielt når du går tom for plass og ønsker å fjerne noen pakker.

For å finne ut pakker som bruker mest plass på systemet ditt, kjør bare denne kommandoen.

[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 bruke -H-alternativet for å lese pakkestørrelser i et format som kan leses av mennesker.

[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 å spesifisere et gitt antall pakker bortsett fra standarden som er 10, bruk -n alternativet.

[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 å søke hjelp til å bruke dpigs, bruk -h-alternativet.

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

Debget brukes til å få en gitt .deb for en pakke fra APTs pakkedatabase. I de neste eksemplene skal vi hente .deb-filer for apache2, zip og tar-verktøy.

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

[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

Den brukes til å velge manuelle inngangssider for installerte eller avinstallerte pakker på systemet ditt. Dette verktøyet lar deg se alle manpages til en pakke.

Noen av de følgende alternativene du kan bruke med debmany for å vise manpagen ved å bruke visningsprogrammet du ønsker:

Hvis du bruker KDE skrivebordsmiljø, bruk alternativet -k for å bruke kfmclient.

[email :~# debmany -k tar

Merk: Jeg har ikke KDE DE installert på systemet mitt, så det er vanskelig å vise utdata fra kommandoen ovenfor.

Hvis du bruker GNOME-skrivebordsmiljø, bruk -g-alternativet for å bruke gnome-open.

[email :~# debmany -g tar

Hvis du bruker KDE/GNOME/Xfce skrivebordsmiljø, bruk alternativet -x for å bruke kdg-open.

[email :~# debmany -x tar

Sørg for at visningsprogrammer ovenfor er installert før du kan bruke dem, ellers kan du få en feilmelding.

Chechstart brukes til å finne og starte på nytt prosesser som bruker gamle versjoner av filer som allerede er oppgradert.

For å bruke checkrestart med alle prosesser, bruk -a-alternativet.

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

For å spesifisere kun behandle slettede filer som er knyttet til en gitt pakke på systemet, bruk -p alternativet.

[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 detaljert utdatainformasjon ved å bruke -v-alternativet.

[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

Den brukes til å vise en liste over tilpassede utgivelseskritiske feil basert på pakkene du vanligvis bruker på systemet ditt. Når du kjører popbugs uten noe alternativ for første gang, vil den vise deg en melding 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 å generere popularitetskonkurranseloggen, kjør denne kommandoen nedenfor.

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

For å lagre utdata i en fil, bruk alternativet –output=/path/to/file. Utdatafilen skal være en html-fil.

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

For å se utdatafilen, åpne filen fra nettleseren ved å spesifisere filplasseringen.

For å vise feilsøkingsinformasjon, bruk -d-alternativet.

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

Den brukes til å finne pakker som har ødelagt en annen pakke. Noen ganger kan systemet ditt bli ødelagt av visse pakker, spesielt når du oppgraderer det. Derfor kan hvilken-pkg-broke hjelpe deg med å finne pakkene som har ødelagt systemet ditt eller en bestemt pakke på systemet.

For å finne ut pakker som har ødelagt apache2, kjør denne kommandoen 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
...

Sammendrag

Det er mange andre verktøy relatert til de vi har sett på, som vi kan lære om i påfølgende artikler. Håper du finner denne veiledningen nyttig, og hvis du får noen feil når du bruker dem eller har andre ideer å legge til, vennligst legg inn en kommentar. Hold deg tilkoblet Tecmint.