当您安装像 postgresql 这样的程序时,它会安装其最新版本的几个程序。
安装后如何删除所有这些包?因为使用
apt-get remove postgresql
仅删除 head 包
答案1
由于apt-get autoremove
(Aaron 建议)将删除所有似乎不再依赖的“辅助包”,有时您会出于某种原因想要保留其中一些。因此,如果您担心这一点,另一种可能性是:
$(apt-cache depends postgresql|awk '{print "sudo apt-get remove "$NF}')
使用 Bash 作为 shell,这基本上可以执行以下操作:
apt-cache depends postgresql
会列出 postgresql 所依赖的所有包,包括 postgresql 本身。但每行看起来都像depends on: <package>
-- 因此我们将输出传输到...awk '{print "sudo apt-get remove "$NF}'
它将取出每行的最后一个单词(即包名称),并在其前面加上我们想要的命令后将其打印出来:(sudo apt-get remove
当然您也可以使用它apt-get purge
)。- 最后,使用
$()
构造,我们建议 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++Ctrl并T运行:
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`