如何清除以前仅删除的软件包?

Byt*_*der 34 package-management uninstall apt dpkg purge

我的系统上有一个软件包列表,它们被再次安装和删除,但没有被清除,即仍有很多配置文件等。

输出dpkg --get-selections | grep deinstall列出了大约 85 个我不需要并希望完全清除的不同包。

因此,我决定在反复试验后最终提出这个问题的简短问题是:

如何完全清除已删除的先前安装的软件包?

当然,重新安装然后清除不是一种选择。

Byt*_*der 45

我刚刚发现以下命令有效:

sudo apt-get purge $(dpkg -l | grep '^rc' | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)


wal*_*tor 22

dpkg --get-selections | grep deinstall生成带有“ deinstall”一词的包名称列表:

$ dpkg  --get-selections | grep deinstall
account-plugin-windows-live         deinstall
debarchiver                         deinstall
flashplugin-installer               deinstall
    ...
Run Code Online (Sandbox Code Playgroud)

通过要求awk只打印第一个字段,我们得到:

$ dpkg --get-selections | awk '$2 == "deinstall" {print $1}'
account-plugin-windows-live
debarchiver
flashplugin-installer
    ...
Run Code Online (Sandbox Code Playgroud)

现在我们有了包列表,xargs让我们将包列表提供给命令(或命令,如果列表足够长):

dpkg --get-selections | awk '$2 == "deinstall" {print $1}' | xargs sudo apt-get purge --dry-run
Run Code Online (Sandbox Code Playgroud)

当你很高兴与模拟的结果,替换--dry-run-yapt-get命令。

相关文档:

man dpkg awk xargs apt-get
Run Code Online (Sandbox Code Playgroud)

  • 在我的系统 Ubuntu 15.04 上,我必须将 `-y` 选项添加到 `apt-get` 以阻止命令在删除软件包之前中止。 (6认同)

归档时间:

查看次数:

30256 次

最近记录:

4 年,7 月 前