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