Kuinka käyttää 8 hyödyllistä Debian-herkkuja -apuohjelmaa Debian-pakettien hallintaan


Debian-goodies on paketti, joka sisältää työkalupakki-tyyliset apuohjelmat, joita käytetään Debianin ja sen johdannaisten, kuten Ubuntu, Kali Linux, hallintaan. Tämän paketin apuohjelmat on kehitetty siten, että ne voidaan yhdistää monien tunnustettujen shell-työkalujen kanssa, ja muut ovat mukana, koska niitä ei voida kehittää omina paketteina Debian-pohjaisiin Linux-jakeluihin.

Tässä oppaassa tarkastellaan, kuinka debian-goodies-paketin alla olevia apuohjelmia käytetään, kuten dglob, debget, dpigs, dgrep, debmany, checkrestart, popbugs ja which-pkg-broken.

Katsotaanpa kunkin työkalun kuvaus alla:

  1. dglob - Laadi luettelo pakettien nimistä, jotka vastaavat mallia
  2. dgrep - etsi regexiä kaikista annettujen pakettien tiedostoista
  3. dpigs - Näytä, mitkä asennetut paketit viivät eniten levytilaa
  4. debget - Hanki .deb paketille APT: n tietokannasta
  5. debmany - Valitse asennettujen tai poistettujen pakettien sivut
  6. checkrestart - etsii ja käynnistää prosessit, joissa käytetään päivitettyjen tiedostojen vanhentuneita versioita
  7. popbugs - Näytä räätälöity julkaisukriittinen virheraportti käyttämiesi pakettien perusteella
  8. which-pkg-broken - Ota kiinni, mikä paketti on saattanut rikkoa toisen

Nämä ovat erittäin hyödyllisiä apuohjelmia, jotka voivat tehdä järjestelmän hallinnasta paljon helpompaa, kun niitä käytetään muiden kuoretyökalujen kanssa. Itse asiassa Debian-goodies -työkalu näyttää enemmän tietoa paketeista kuin tavalliset työkalut, kuten dpkg ja apt-työkalut.

Kuinka asentaa Debian-herkkuja Debianiin, Ubuntuun ja Linux Mintiin

Asenna debian-goodies -paketti suorittamalla tämä komento alla.

# sudo apt-get install debian-goodies

Kun debian-goodies-paketti on asennettu, on nyt aika tarkistaa tämän paketin tarjoamien apuohjelmien käyttö loppuartikkelissa.

Kuinka käyttää Debian-Goodies-apuohjelmia

Dglob luo luettelon pakettien tai tiedostojen nimistä mallissa määritetyllä tavalla. Luo kaikkien pakettien nimi yksinkertaisesti suorittamalla dglob tai sisällyttämällä -a-vaihtoehto.

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

Suorita dglob with package name saadaksesi selville, onko järjestelmässä paketti. Seuraavassa esimerkissä etsimme Firefoxia, Apache2: ta ja debain-herkkuja.

[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

Voit tulostaa luettelon kaikista määritetyn paketin tiedostoista -f -asetusten avulla.

[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-apuohjelmaa käytetään etsimään tiedostoja määritetyissä pakettinimissä säännöllistä lauseketta varten. Pohjimmiltaan se käy läpi järjestelmään asennettujen pakettien tiedostot, ja suurin osa käytetyistä vaihtoehdoista on niitä, joita käytetään grepissä, muutamia lukuun ottamatta.

Määritä kuvio käyttämällä -e -vaihtoehtoa seuraavasti.

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

Jos haluat tulostaa jokaisen syötetiedoston nimen, josta tulosteet olisi tulostettu, käytä -l -vaihtoehtoa.

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

Jos haluat näyttää vain vastaavan rivin vastaavat osat, käytä -o -vaihtoehtoa.

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

Tätä apuohjelmaa käytetään näyttämään paketteja, jotka ovat käyttäneet eniten tilaa järjestelmässäsi. Se on erittäin tärkeää varsinkin kun tila on loppumassa ja haluat poistaa joitain paketteja.

Suorita tämä komento saadaksesi selville järjestelmän eniten tilaa vievät paketit.

[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

Voit käyttää -H -vaihtoehtoa lukeaksesi pakettikoot ihmisen luettavassa muodossa.

[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

Voit määrittää tietyn määrän paketteja lukuun ottamatta oletusarvoa, joka on 10, käyttämällä -n -vaihtoehtoa.

[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

Voit etsiä apua dpigs-sovellusten käytöstä -h -vaihtoehdolla.

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

Debgetiä käytetään tietyn .deb-paketin saamiseen APT: n pakettitietokannasta. Seuraavissa esimerkeissä haetaan .deb-tiedostot apache2-, zip- ja tar-apuohjelmille.

[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

Kaikki haetut .deb-paketit.

[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

Sitä käytetään valitsemaan järjestelmään asennettujen tai poistettujen pakettien manuaaliset syötesivut. Tämän apuohjelman avulla voit tarkastella kaikkia paketin sivuja.

Joitakin seuraavista vaihtoehdoista, joita voit käyttää debmanyn kanssa näyttääksesi sivun valitsemallasi katseluohjelmalla:

Jos käytät KDE-työpöytäympäristöä, käytä -k -vaihtoehtoa kfmclientin käyttämiseen.

[email :~# debmany -k tar

Huomaa: Minulla ei ole KDE DE: tä asennettuna järjestelmään, joten yllä olevan komennon lähtö on vaikea näyttää.

Jos käytät GNOME-työpöytäympäristöä, käytä -g -vaihtoehtoa käyttääksesi gnome-open -ohjelmaa.

[email :~# debmany -g tar

Jos käytät työpöytäympäristöä KDE/GNOME/Xfce, käytä -x -vaihtoehtoa käyttääksesi kdg-open -ohjelmaa.

[email :~# debmany -x tar

Varmista, että yllä olevat katsojat on asennettu, ennen kuin voit käyttää niitä, muuten saatat saada virheen.

Chechstartia käytetään etsimään ja käynnistämään uudestaan prosessit, jotka käyttävät vanhoja tiedostopäivityksiä jo päivitetyistä tiedostoista.

Jos haluat käyttää checkrestartia kaikissa prosesseissa, käytä -a -vaihtoehtoa.

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

Voit määrittää vain prosessin poistetut tiedostot, jotka on liitetty tiettyyn järjestelmän pakettiin, käyttämällä -p -vaihtoehtoa.

[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

Voit luoda yksityiskohtaiset tulosteet käyttämällä -v -vaihtoehtoa.

[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

Sitä käytetään luettelon mukautetuista julkaisukriittisistä virheistä, jotka perustuvat järjestelmässäsi yleisesti käytettyihin paketteihin. Kun suoritat popbugeja ilman mitään vaihtoehtoa ensimmäistä kertaa, se näyttää sinulle alla olevan kaltaisen viestin.

[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

Luo suosio-kilpailuloki suorittamalla tämä komento alla.

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

Jos haluat tallentaa lähdön tiedostoon, käytä –output =/path/to/file -vaihtoehtoa. Tulostustiedoston tulee olla HTML-tiedosto.

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

Voit tarkastella tulostetiedostoa avaamalla tiedoston verkkoselaimesta määrittämällä tiedoston sijainnin.

Voit näyttää virheenkorjaustiedot käyttämällä -d -vaihtoehtoa.

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

Sitä käytetään pakettien löytämiseen, jotka ovat rikkoneet toisen paketin. Joskus tietyt paketit saattavat rikkoa järjestelmän, varsinkin kun päivität sitä. Siksi which-pkg-broken voi auttaa sinua löytämään paketit, jotka ovat rikkoneet järjestelmän tai tietyn paketin järjestelmästä.

Voit selvittää paketit, jotka ovat rikkoneet apache2, suorittamalla tämän komennon alla.

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

Yhteenveto

Tarkasteluihimme liittyy monia muita apuohjelmia, joista voimme oppia seuraavissa artikkeleissa. Toivottavasti löydät tämän oppaan hyödylliseksi ja jos saat virheitä käyttäessäsi niitä tai sinulla on muita ideoita lisätäksesi, lähetä kommentti. Pysy yhteydessä Tecmintiin.