如何彻底删除 Confluent CLI?

如何彻底删除 Confluent CLI?

我使用以下命令将 Confluent CLI 安装到我的 Ubuntu 系统:这里提到的步骤

我连续执行了以下命令:

wget -qO - https://packages.confluent.io/deb/3.3/archive.key | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.confluent.io/deb/3.3 stable main"

sudo apt-get update && sudo apt-get install confluent-platform-oss-2.11

现在为了删除,我执行了以下命令:

sudo apt-get remove confluent-platform-oss-2.11

另外,我执行了:

sudo add-apt-repository --remove "deb [arch=amd64] https://packages.confluent.io/deb/3.3 stable main"

但它们没有帮助。当我confluent在终端中输入时,仍然会出现可用的选项,我可以执行它们。那么我该如何从系统中彻底删除它呢?

答案1

总结:运行sudo apt --purge autoremove应该可以完成卸载。

使用该autoremove操作来卸载剩余的依赖项。

您已卸载该confluent-platform-oss-2.11软件包,但这是一个元包, 哪个本身不提供任何软件。1安装它会导致安装其他几个软件包,这些软件包本身提供了软件。删除confluent-platform-oss-2.11会导致其他软件包有资格的进行自动删除,但实际上并没有删除它们。要立即删除它们,只需运行:

sudo apt autoremove

或者,如果你想要删除与软件相关的系统范围的配置文件,可以运行此命令反而

sudo apt --purge autoremove

无论哪种情况,apt都会向您显示哪些软件包将被删除并询问您是否要这样做。

您仍然可以运行该命令,因为该命令是由安装导致安装的软件包2confluent提供的。因此,是将要卸载的软件包之一。confluent-cliconfluent-platform-oss-2.11confluent-cliautoremove


如果您需要(或想要)进一步调查……

如果您想了解更多信息,或针对行动autoremove不足的相当罕见的情况,请参阅本节。

当您最初安装时confluent-platform-oss-2.11,的输出apt-get将包含如下内容:

The following additional packages will be installed:
  confluent-camus confluent-cli confluent-common confluent-kafka-2.11 confluent-kafka-connect-elasticsearch
  confluent-kafka-connect-hdfs confluent-kafka-connect-jdbc confluent-kafka-connect-s3
  confluent-kafka-connect-storage-common confluent-kafka-rest confluent-rest-utils confluent-schema-registry

不过,您很少需要手动删除这些软件包。系统上安装的每个软件包都标记为手动或自动安装。您明确要求confluent-platform-oss-2.11安装,因此它被标记为手动安装。仅因为其他软件包依赖于它们而安装的软件包,并且您从未尝试通过名称安装的软件包被标记为自动安装。操作autoremove(传递给aptapt-get)将删除不再被任何当前安装的软件包依赖的自动安装的软件包。

如果autoremove没有删除您期望的所有内容,您可以尝试手动删除软件包。首先,除非您确切知道安装了哪些软件包,否则您应该检查日志以防它与我上面显示的不一样。最有用的日志通常是/var/log/apt/history.log/var/log/apt/term.log。您可以尝试使用或(或使用相应的命令,如果您愿意)卸载软件包。如果您这样做,可能会询问您是否要继续。sudo apt remove ...sudo apt purge ...apt-get仔细查看包裹清单。如果autoremove不起作用,则可能还有其他问题,具体取决于软件包。该remove操作仍会将其删除,并且删除任何依赖它们的东西!3


笔记

1dpkg-query -L confluent-platform-oss-2.11我猜是这样的;然后我通过检查安装了的系统上的输出来确认这一点confluent-platform-oss-2.11

2运行type confluent以找出它confluent在哪里,然后dpkg -S /usr/bin/confluent找出哪个包提供了它,揭示了这一点。

3总体而言,依赖解析的真正故事比我所说的要复杂得多,因为存在多种依赖强度。有时可能会安装包 A,导致包 B 被自动安装,然后删除包 B没有必须删除软件包 A。但是,就您而言,仍安装的软件包之所以被安装,是因为元软件包与它们之间存在严格的“依赖”关系,并且其他任何软件包不太可能声明对它们有任何依赖关系。

相关内容