Как удалить все идущие программы из пакета? [дубликат]

На этот вопрос уже есть ответ здесь:

Когда вы устанавливаете программу как и postgresql, он устанавливает несколько программ для своей последней версии.

Как удалить все эти пакеты после установки? поскольку при использовании

apt-get remove postgresql

удаляется только этот головной пакет

7
задан 30 December 2016 в 18:24

3 ответа

Поскольку apt-get autoremove (предложенный Аароном) удалит все «вспомогательные пакеты», кажется, больше ничего не зависит, иногда вы хотите оставить некоторые из них по тем или иным причинам. Так что, если это касается вас, другой возможностью будет:

$(apt-cache depends postgresql|awk '{print "sudo apt-get remove "$NF}')

Используя Bash в качестве вашей оболочки, это в основном сделает следующее:

  1. apt-cache depends postgresql выведет список всех пакетов зависит от postgresql, включая сам postgresql. Но каждая строка будет выглядеть как depends on: <package> - поэтому мы передаем вывод в ...
  2. awk '{print "sudo apt-get remove "$NF}', который будет брать последнее слово в каждой строке (которое является именем пакета) и печатает его после того, как ему предшествует наша предполагаемая команда: sudo apt-get remove (вы, конечно, могли бы также использовать apt-get purge вместо этого) .
  3. наконец, используя конструкцию $(), мы советуем Bash интерпретировать вывод как команду для выполнения.

Вы могли бы альтернативно заменить 3-й шаг и вместо этого перенаправить вывод в файл:

apt-cache depends postgresql|awk '{print "sudo apt-get remove "$NF}' >pg_remove.sh

И затем проверить файл, при необходимости выполнить некоторые корректировки (такие как комментирование / удаление строк, где Вы хотите сохранить пакет) и, наконец, выполнить скрипт, используя

bash pg_remove.sh

Теперь у вас есть много возможностей для выбора:)

РЕДАКТИРОВАТЬ: Проверка с более сложными метапакетами, например, lubuntu-desktop, вышеприведенные операторы должны быть уточнены:

apt-cache depends <packageName>|grep "Depends on"|awk '{print "sudo apt-get remove "$NF}'

grep необходим, чтобы ограничить результат зависимостями (и пропустить рекомендации и т. д.).

ВАЖНО: Вы должны использовать это только для метапакетов !!! в противном случае вы можете получить пустой диск (например, postgresql-9.1 зависит от libc6, и удаление libc6, безусловно, будет иметь неприятные последствия, если это необходимо). много пакетов).

Так что будьте осторожны, и лучше сначала перенаправить в файл (как объяснено) и исследуйте перед выполнением.

0
ответ дан 30 December 2016 в 18:24

HIt Alt + Ctrl + T и выполните команду

sudo apt-get autoremove

. нужно, что связано с удалением пакета (такого как postgresql), который зависит от них.

Вы всегда можете удалить файлы конфигурации с помощью:

sudo apt-get autoremove --purge

Для дальнейшей очистки используйте следующее:

sudo apt-get install deborphan sudo apt-get autoremove --purge
deborphan
0
ответ дан 30 December 2016 в 18:24

Просто выполните следующие команды:

sudo apt-get install deborphan
sudo apt-get autoremove --purge postgresql
sudo apt-get autoremove --purge `deborphan`
0
ответ дан 30 December 2016 в 18:24

Другие вопросы по тегам:

Похожие вопросы: