无法在 Ubuntu 中完全删除包

Not able to remove a package completely in Ubuntu

尝试从 Ubuntu 移除蚊子,我可能忘记停止 service/process。虽然移除了 mosquitto(使用 apt-get remove 和 apt-get purge 和 autoremove 等),但我仍然可以在命令提示符下访问 (运行) mosquitto。

当我再次尝试删除它时,它显示

Package 'mosquitto' is not installed, so not removed

我不知道如何删除包管理器告诉我不存在的东西。可能留下了一些幽灵文件,但仍然..?

这是如何卸载没有源代码的已编译应用程序你以前安装过它。

您有两个选择:

  • 重新创建 Makefile
  • 手动删除 make
  • 创建的文件

重新创建 Makefile

如果包的开发者已经制定了一个好的卸载规则,您可以重新创建 Make 配置并使用该规则。

再次下载应用程序的源压缩包,并使用您安装的相同版本。如果您在第一次解压缩 tarball 时将任何选项传递给 ./configure,则必须再次提供相同的选项。

那么你可以运行 make uninstall 或者sudo make uninstall.

手动删除文件

首先创建整个系统的备份非常重要,因为您可以使用此方法轻松删除错误的文件。

然后找到您可以从控制台调用的二进制文件:

whereis name_of_your_program

这将找到程序的 source/binary 和手册部分。请注意存储它们的目录,并使用 ls -l one_of_the_file 等 link 参考资料和日期收集有关这些文件的更多信息。

您可能已经在一天内编译了该应用程序,因此您可以尝试在 /usr/local 这样的包含目录中根据日期定位其文件,如下所示:

find /usr/local -type f -newermt '2017-03-23'

然后删除应用程序的目录、二进制文件和配置。

以后避免这些问题

使用包管理安装应用程序有很多优点,请始终尽量避免自己编译。

但是,有时不得不,那么你应该尝试使用checkinstall而不是make install