如何删除包中的所有程序?

如何删除包中的所有程序?

当您安装像 postgresql 这样的程序时,它会安装其最新版本的几个程序。

安装后如何删除所有这些包?因为使用

apt-get remove postgresql

仅删除 head 包

答案1

由于apt-get autoremove(Aaron 建议)将删除所有似乎不再依赖的“辅助包”,有时您会出于某种原因想要保留其中一些。因此,如果您担心这一点,另一种可能性是:

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

使用 Bash 作为 shell,这基本上可以执行以下操作:

  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 肯定会适得其反,因为很多软件包都需要它)。

所以要小心,最好先重定向到一个文件(如上所述)并在执行前进行调查。

答案2

点击Alt++CtrlT运行:

sudo apt-get autoremove

此命令删除不再需要的包,这是因为删除了依赖于它们的包(例如 postgresql)。

您可以随时使用以下命令清除配置文件:

sudo apt-get autoremove --purge

要进一步清洁,请使用以下命令:

sudo apt-get install deborphan sudo apt-get autoremove --purge
deborphan

答案3

简单按照以下命令:

sudo apt-get install deborphan
sudo apt-get autoremove --purge postgresql
sudo apt-get autoremove --purge `deborphan`

相关内容