it-roy-ru.com

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

Как удалить точно такие же вещи, которые я установил или система установила с добавлением поддержки языка, например? Есть ли процедура, которой я могу следовать? Apt-get remove, autoremove или purge - это не то, что я ищу, это оставляет вещи позади.

В настоящее время я изучаю debfoster, но я надеюсь, что я наблюдаю за чем-то более простым и более естественным.

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

Обновление:

Чтобы обновить и уточнить мой вопрос, я уже знаю, что установки пакетов регистрируются месяц назад, я спросил Как правильно удалить поддержку китайского языка и нашел решение, установленные пакеты, включая шрифты, которые я хочу удалить, находятся только в /var/log/dpkg.log. Я ищу автоматизацию или какой-либо инструмент, который автоматизирует это, поэтому мне не нужно обрабатывать журналы каждый раз, когда я устанавливаю и удаляю новый язык или приложение. По-видимому, в Ubuntu есть небольшой недостаток, и он не удаляет шрифты при удалении языка, я устанавливаю новый язык, а затем удаляю его несколько раз в день для тестирования, у меня есть скрипт, который я сделал сегодня, куда я помещаю все из журналов, которые не удаляются. и я все еще надеюсь, что заново изобретаю колесо, и уже есть какая-то процедура, которая отслеживает, какие файлы и другие пакеты с материалами касаются, и проверяет, будет ли она удалена при удалении.

3
Mike

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

Sudo apt-get install debfoster

Создать файл хранителей, хранящийся в /var/lib/debfoster/keepers:

Sudo debfoster -q

Этот файл хранителя содержит все установленные на данный момент пакеты, при следующей установке просто запустите:

Sudo debfoster

Он начнет перечислять все пакеты, установленные с момента последнего создания файла keepers. Будут заданы вопросы с указанием 9 вариантов, первые 4 важны:

Yes        Keep the package. [default]
No         Delete the package.
Prune      Delete the package and the packages it is keeping installed.
Skip       Skip this question.

Дополнительная информация man debfoster или debfoster --help.

На самом деле в нем перечислены даже шрифты, которые опускаются при apt-get autoremove или при удалении языковых пакетов с помощью GUI Language Settings.

2
Mike

Если вы установили "вещи" через менеджер пакетов (apt-get, dpkg, synaptic), все они будут зарегистрированы в /var/log/apt/*. Сгенерировать команды apt-get purge просто.

Если вы установили "вещи" другим способом (Sudo make install, /usr/bin/cpan, ...), вы должны удалить его тем же способом.

Чтобы облегчить себе жизнь в будущем, особенно если вы используете второй метод, рассмотрите возможность установки и использования installwatch. Со страницы man:

trusty (1) installwatch.1.gz
Provided by: checkinstall_1.6.2-4ubuntu1_i386

NAME

       installwatch — Track installation of software

SYNOPSIS

       installwatch [options]  [command]

DESCRIPTION

       installwatch  is  a  program that is used in order to track the changes
       made  while  installing  local  software  (i.e.   "make  install").  It
       monitors  the requested command, and produces a log which indicates all
       created and modified files.
2
waltinator

Я думаю, что то, что вы называете "связанными" пакетами, упоминается apt или apt-get как "дополнительные" пакеты (после установки) и как "автоматически установленные" пакеты (после удаления).

Насколько я понимаю из this ответа, Sudo apt autoremove не должен ничего оставлять после запуска после вашей конкретной программы/пакета был удален.

Чтобы увидеть перед удаление программы, что принесла ее установка (с помощью apt или apt-get) - следуя связанному ответу:

Сначала запустите Sudo apt autoremove, чтобы apt запускалась из "чистого" состояния.

Затем смоделируйте удаление вашей программы/пакета и запишите автоматически установленные пакеты:

Sudo apt-get remove --dry-run YOUR_PROGRAM

который даст что-то вроде

The following packages were automatically installed and are no longer required:
  THE_LIST_OF_PACKAGES
Use 'Sudo apt autoremove' to remove them.

После удаления YOUR_PROGRAM, если хотите, выполните

Sudo apt remove <THE_LIST_OF_PACKAGES>

вместо Sudo apt autoremove.


Что касается debfoster, если вы установили его и создали файл keepers перед установкой вашей программы, то простой способ узнать, какие дополнительные пакеты принесла программа, с помощью команды

Sudo debfoster -r YOUR_PROGRAM
0
user47206