Поиск по сайту:

Как использовать 8 полезных утилит Debian Goodies для управления пакетами Debian


Debian-goodies — это пакет, включающий утилиты в стиле набора инструментов, используемые для управления Debian и его производными системами, такими как Ubuntu, Kali Linux. Утилиты в этом пакете разработаны таким образом, чтобы сочетаться со многими признанными инструментами оболочки, а другие включены, поскольку их нельзя разработать как отдельные пакеты в дистрибутивах Linux на основе Debian.

В этом руководстве мы рассмотрим, как использовать утилиты из пакета debian-goodies, в который входят dglob, debget, dpigs<, dgrep, debmany, checkrestart, popbugs и который-pkg-broke.

Давайте посмотрим описание каждого инструмента ниже:

  1. dglob – создать список имен пакетов, соответствующих шаблону.
  2. dgrep – искать во всех файлах в заданных пакетах регулярное выражение.
  3. dpigs – показывает, какие установленные пакеты занимают больше всего места на диске.
  4. debget – получить .deb для пакета в базе данных APT.
  5. debmany – выберите страницы управления установленных или удаленных пакетов.
  6. checkrestart – находит и перезапускает процессы, использующие устаревшие версии обновленных файлов.
  7. popbugs – отображает настроенный отчет об ошибках, критически важных для выпуска, на основе используемых вами пакетов.
  8. what-pkg-broke – определите, какой пакет мог повредить другой.

Это очень полезные утилиты, которые могут значительно упростить Системное администрирование при использовании с другими инструментами оболочки. Фактически, инструмент Debian-goodies показывает больше информации о пакетах, чем стандартные инструменты, такие как dpkg и apt.

Читайте также: изучите 15 команд dpkg и 25 команд apt-get для управления пакетами в Debian и его производных.

Как установить Debian-вкусности в Debian, Ubuntu и Linux Mint

Чтобы установить пакет debian-goodies, выполните приведенную ниже команду.

sudo apt-get install debian-goodies

После установки пакета debian-goodies пришло время проверить использование каждой утилиты, входящей в этот пакет, в оставшейся части статьи.

Как использовать утилиты Debian-Goodies

1. Утилита dglob

dglob генерирует список имен пакетов или файлов, как указано в шаблоне. Чтобы сгенерировать имена всех пакетов, просто запустите dglob или включите параметр -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
...

Чтобы узнать, существует ли пакет в вашей системе, запустите dglob с именем пакета. В приведенном ниже примере мы будем искать Firefox, Apache2 и 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

Вы можете распечатать список всех файлов в указанном пакете, используя параметры -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. Как использовать утилиту dgrep

Утилита dgreb используется для поиска файлов в указанных именах пакетов по регулярному выражению. По сути, он просматривает файлы пакетов, которые установлены в вашей системе, и большинство опций, используемых с grep, за исключением нескольких.

Чтобы указать шаблон, используйте параметр -e следующим образом.

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

Чтобы напечатать имя каждого входного файла, из которого будут выводиться выходные данные, используйте опцию -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
...

Чтобы отобразить только совпадающие части совпадающей строки, используйте опцию -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. Как использовать утилиту dpigs

Эта утилита используется для отображения пакетов, которые использовали больше всего места в вашей системе. Это очень важно, особенно когда вам не хватает места и вы хотите удалить некоторые пакеты.

Чтобы узнать, какие пакеты занимают больше всего места в вашей системе, просто запустите эту команду.

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

Вы можете использовать опцию -H, чтобы прочитать размеры пакетов в удобочитаемом формате.

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

Чтобы указать определенное количество пакетов, кроме значения по умолчанию, равного 10, используйте параметр -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

Чтобы получить помощь по использованию dpigs, используйте параметр -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. Как использовать утилиту Debget

debget используется для получения заданного .deb пакета из базы данных пакетов APT. В следующих примерах мы получим файлы .deb для утилит apache2, zip и 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

Все полученные пакеты .deb.

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. Как использовать утилиту debmany

Он используется для выбора страниц ручного ввода установленных или удаленных пакетов в вашей системе. Эта утилита позволяет просматривать все страницы руководства пакета.

Некоторые из следующих опций вы можете использовать с debmany для отображения man-страницы с помощью выбранного вами средства просмотра:

Если вы используете среду рабочего стола KDE, используйте опцию -k для использования kfmclient.

root@tecmint:~# debmany -k tar

Примечание. В моей системе не установлен KDE DE, поэтому сложно отобразить вывод приведенной выше команды.

Если вы используете среду рабочего стола GNOME, используйте опцию -g, чтобы использовать gnome-open.

root@tecmint:~# debmany -g tar

Если вы используете среду рабочего стола KDE/GNOME/Xfce, используйте опцию -x, чтобы использовать kdg-open.

root@tecmint:~# debmany -x tar

Прежде чем использовать указанные выше средства просмотра, убедитесь, что они установлены, иначе вы можете получить сообщение об ошибке.

6. Как использовать утилиту checkrestart

chechstart используется для поиска и перезапуска процессов, использующих старые версии файлов, которые уже были обновлены.

Чтобы использовать checkrestart для всех процессов, используйте опцию -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
...

Чтобы указать обрабатывать только удаленные файлы, прикрепленные к данному пакету в системе, используйте параметр -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

Вы можете сгенерировать подробную выходную информацию, используя опцию -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. Как использовать утилиту popbugs

Он используется для отображения списка настроенных критических для выпуска ошибок на основе пакетов, которые вы обычно используете в своей системе. Когда вы запускаете popbugs без каких-либо опций в первый раз, вы увидите сообщение, подобное показанному ниже.

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

Чтобы создать журнал конкурса популярности, выполните приведенную ниже команду.

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

Чтобы сохранить выходные данные в файле, используйте параметр –output=/path/to/file. Выходной файл должен быть файлом html.

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

Чтобы просмотреть выходной файл, откройте файл в веб-браузере, указав местоположение файла.

Чтобы отобразить отладочную информацию, используйте опцию -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. Как использовать утилиту Which-pkg-broke

Он используется для поиска пакетов, которые сломали другой пакет. Иногда ваша система может быть повреждена некоторыми пакетами, особенно при ее обновлении. Поэтому который-pkg-broke может помочь вам найти пакеты, которые сломали вашу систему или конкретный пакет в системе.

Чтобы узнать пакеты, которые сломали apache2, выполните следующую команду ниже.

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

Краткое содержание

Существует множество других утилит, связанных с рассмотренными нами, о которых мы, возможно, узнаем в последующих статьях. Надеюсь, это руководство окажется для вас полезным. Если при его использовании вы обнаружите какие-либо ошибки или у вас возникнут какие-либо другие идеи, оставьте комментарий. Оставайтесь на связи с Tecmint.