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

7

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

После установки как удалить все эти пакеты? потому что используя

apt-get remove postgresql

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

    
задан Marc 22.07.2012 в 18:43
источник

3 ответа

8

As 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 интерпретировать вывод как команду для выполнения.

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

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

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

bash pg_remove.sh

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

EDIT: Проверка с более сложными метапакетами, например. lubuntu-desktop, инструкции выше должны быть уточнены:

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

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

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

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

    
ответ дан Izzy 22.07.2012 в 19:13
источник
1

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
    
ответ дан Aaron Hill 22.07.2012 в 18:49
0

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

sudo apt-get install deborphan
sudo apt-get autoremove --purge postgresql
sudo apt-get autoremove --purge 'deborphan'
    
ответ дан Abhisek Mukherjee 04.04.2013 в 12:11