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

Debfoster — сохраняйте только необходимые пакеты в Debian и Ubuntu

Сегодня мы собираемся узнать о менее известной, но полезной утилите для Debian и его производных, таких как Ubuntu и варианты Ubuntu, такие как Linux Mint. Поприветствуйте "Debfoster" — утилиту командной строки, позволяющую сохранять только необходимые пакеты и удалять другие пакеты, которые больше не нужны. Таким образом, вы можете постоянно поддерживать чистоту и минимализм в системе. Приложение debfoster — это программа-оболочка для менеджеров пакетов apt и dpkg. Он поддерживает список установленных пакетов, которые были явно запрошены, а не установлены как зависимость.

При первом запуске он создаст список установленных пакетов и сохранит его в файле с именем keepers в каталоге /var/lib/debfoster/. Debfoster будет использовать этот список для обнаружения пакетов, которые были установлены только потому, что от них зависели другие пакеты. Если одна из этих зависимостей изменится, debfoster заметит это и спросит, хотите ли вы удалить старый пакет. Таким образом, это поможет вам поддерживать чистоту системы с необходимыми пакетами по вашему выбору.

Сохраняйте только необходимые пакеты в Debian и Ubuntu с помощью Debfoster

Debfoster доступен в репозиториях по умолчанию. Так что установка не составит большого труда. Запустите следующую команду, чтобы установить Debfoster в любой системе на базе Debian:

sudo apt install debfoster

После установки нам нужно создать список установленных пакетов, выполнив следующую команду:

sudo debfoster -q

Приведенная выше команда добавит текущие установленные пакеты в файл keepers в каталоге /var/lib/debfoster/. Вы можете отредактировать этот файл, чтобы удалить пакеты, которые вы больше не хотите устанавливать в своей системе.

Вот содержимое моего файла хранителей.

cat /var/lib/debfoster/keepers

Не следует удалять из этого файла важные пакеты, связанные с системой, такие как ядро Linux, grub, база Ubuntu, рабочий стол Ubuntu и т. д. Кроме того, сделайте резервную копию важных файлов конфигурации, которые вы отредактировали вручную.

Теперь заставьте утилиту debfoster удалить пакеты, которые не указаны в файле Keepers. Для этого запустите:

sudo debfoster -f

Debfoster удалит все пакеты, которых нет в файле Keepers, вместе с их зависимостями.

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

Затем вы можете запускать следующую команду время от времени после каждого добавления/удаления пакетов, чтобы проверить, есть ли какие-либо потерянные пакеты или нежелательные зависимости, которые необходимо удалить.

sudo debfoster

Если вы установили/удалили какие-либо пакеты, вы увидите результат, подобный приведенному ниже. Как вы видите в выводе, пакет Screen не указан в моем списке хранителей. Потому что я установил его после создания списка хранителей. Итак, Дебфостер спрашивает меня, хочу ли я оставить это себе или нет. Если вы не знаете, что делать, введите H, чтобы отобразить раздел справки.

Keep screen? [Ynpsiuqx?], [H]elp: H

 Yes Keep screen. [default]
 No Delete screen.
 Prune Delete screen and the packages it is keeping installed.
 Skip Skip this question.
 Help Print this message.
 Info or ? Show information about screen.
 Undo Undo last response.
 Quit Exit without removing packages.
 Exit Remove unwanted packages and exit.

Keep screen? [Ynpsiuqx?], [H]elp:

Debfoster отобразит все возможные варианты. Введите Y, если вы не хотите удалять пакеты. Пакет экрана теперь будет добавлен в файл хранителей, и Debfoster не удалит его в будущих транзакциях, если только вы не удалите его вручную с помощью команды «apt-get Remove Screen». Введите N, чтобы удалить пакет экрана. Введите P, чтобы удалить экран и пакеты, которые он сохраняет установленными. Введите info или ?, чтобы отобразить подробную информацию о пакете. Q, чтобы выйти, не удаляя пакет. И введите E, чтобы удалить пакеты и выйти.

Просмотр пакетов в списке Keepers

Чтобы просмотреть список пакетов в базе данных debfoster, запустите:

debfoster -a

Вот список пакетов на моем рабочем столе Ubuntu 16.04 LTS.

The following packages are on the keeper list:
 account-plugin-aim brasero debfoster deja-dup-backend-gvfs dialog firefox-locale-en gdebi gir1.2-webkit-3.0 git hyphen-en-us indicator-multiload
 language-pack-gnome-en libarchive-extract-perl libcpan-meta-perl libmodule-build-perl libmodule-pluggable-perl libpackage-constants-perl libpod-latex-perl
 libreoffice-help-en-us libreoffice-style-human libterm-ui-perl libtext-soundex-perl libvisual-0.4-plugins linux-generic linux-headers-4.4.0-15-generic
 linux-image-extra-4.4.0-15-generic myspell-en-au myspell-en-gb myspell-en-za mythes-en-us oneconf openoffice.org-hyphenation openssh-server python-pip python3-smbc
 rhythmbox-plugin-cdrecorder rhythmbox-plugin-magnatune samba-common screen shutter ssh-askpass-gnome telepathy-idle thunderbird-locale-en-us ubuntu-desktop
 ubuntu-minimal ubuntu-sso-client-qt ubuntu-standard ubuntu-wallpapers-wily wbritish xserver-xorg-video-cirrus xserver-xorg-video-mach64 xserver-xorg-video-mga
 xserver-xorg-video-neomagic xserver-xorg-video-openchrome xserver-xorg-video-r128 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
 xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident

Использовать другой файл кипера

По умолчанию debfoster сохраняет установленные пакеты в файле /var/lib/debfoster/keepers. Однако вы можете указать другую базу данных debfoster (конечно, файл хранителей), используя флаг -k, как показано ниже.

debfoster -k <path-to-keeper-file>

Просмотр потерянных пакетов

Вам не всегда нужно запускать команду «sudo debfoster», чтобы проверить наличие потерянных пакетов. Вы можете просто использовать флаг -s, как показано ниже, чтобы просмотреть наличие потерянных пакетов.

$ debfoster -s
The following packages have been orphaned:
 tmux

Как вы видите в приведенном выше выводе, у меня есть один потерянный пакет. Если это необходимый пакет и вы не хотите, чтобы debfoster удалял его, мы можем просто добавить его в файл Keepers, выполнив следующую команду:

sudo debfoster

Он попросит вас сохранить tmux или нет. Если вы храните tmux в файле Keepers, просто введите Y.

Keep tmux? [Ynpsiuqx?], [H]elp:Y

Альтернативно вы можете вручную отредактировать файл Keepers и добавить tmux в список.

sudo vi /var/lib/debfoster/keepers

Добавьте туда tmux.

[...]
tmux

Введите :wq, чтобы сохранить файл и выйти из него. Теперь вы не увидите потерянных пакетов при запуске команды «debfoster -s».

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

Добавление/удаление пакетов

Поскольку debfoster — это оболочка для менеджеров пакетов apt-get и dpkg, вы также можете использовать его для добавления или удаления пакетов.

Чтобы установить пакет, запустите:

sudo debfoster screen

Теперь debfoster запустит apt-get и установит указанный пакет.

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

$ sudo debfoster screen-
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following packages will be REMOVED:
 screen*
0 upgraded, 0 newly installed, 1 to remove and 608 not upgraded.
After this operation, 972 kB disk space will be freed.
Do you want to continue? [Y/n]

Поиск зависимостей

Чтобы вывести список всех пакетов, от которых зависит пакет, используйте флаг -d.

debfoster -d screen

А чтобы получить список всех пакетов в базе данных debfoster, которые зависят от данного пакета, используйте флаг -e, как показано ниже.

debfoster -e screen

Более подробную информацию можно найти на страницах руководства.

man debfoster

Как видите, Debfoster помогает вам отслеживать, что вы установили, и удалять все остальные пакеты, которые не требуются. Еще раз предупреждаю — пользоваться этим приложением нужно очень осторожно. Не удаляйте важные пакеты, связанные с системой, такие как база Ubuntu, grub, текущее ядро и т. д. Если вы это сделаете, вы можете получить непригодную для использования систему.

Рекомендуем прочитать:

  • Удалить ненужные файлы конфигурации в системах на базе Debian
  • Как найти и удалить неиспользуемые пакеты в Linux

Статьи по данной тематике