我使用以下命令将 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-cli
confluent-platform-oss-2.11
confluent-cli
autoremove
如果您需要(或想要)进一步调查……
如果您想了解更多信息,或针对行动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
(传递给apt
或apt-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。但是,就您而言,仍安装的软件包之所以被安装,是因为元软件包与它们之间存在严格的“依赖”关系,并且其他任何软件包不太可能声明对它们有任何依赖关系。