web-dev-qa-db-ja.com

Confluent CLIを完全に削除するにはどうすればよいですか?

以下のコマンドを使用して、 ここに記載されている手順 に従ってUbuntuシステムにConfluent CLIをインストールしました。

次のコマンドを連続して実行しました。

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
Mistu4u

TL; DR:Sudo apt --purge autoremoveを実行すると、アンインストールが完了します。

autoremoveアクションを使用して、残りの依存関係をアンインストールします。

confluent-platform-oss-2.11パッケージをアンインストールしましたが、これは メタパッケージ であり、これは それ自体はソフトウェアを提供していません です。1 それをインストールすると、ソフトウェアを提供する他のいくつかのパッケージがインストールされます。 confluent-platform-oss-2.11を削除すると、他のパッケージが自動削除の対象となる eligible になりますが、実際には削除されません。ここでそれらを削除するには、次を実行するだけで十分です。

Sudo apt autoremove

または、 also ソフトウェアに関連するシステム全体の構成ファイルを削除する場合は、次のコマンドを実行できます代わりに

Sudo apt --purge autoremove

どちらの場合でも、aptは削除されるパッケージを表示し、削除するかどうかを尋ねます。

confluentコマンドはconfluent-cliパッケージによって提供されるため、引き続き実行できます。2 どのconfluent-platform-oss-2.11のインストールが原因でインストールされました。したがって、confluent-cliは、autoremoveがアンインストールするパッケージの1つです。


さらに調査する必要がある(または希望する)場合...

このセクションは、詳細を知りたい場合、または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アクションはそれらを削除し、 also それらに依存するものをすべて削除します!


ノート

1 これはそうだと思っていました。次に、dpkg-query -L confluent-platform-oss-2.11がインストールされているシステムでconfluent-platform-oss-2.11の出力を調べて確認しました。

2type confluentを実行してconfluentがどこにあるかを確認し、次にdpkg -S /usr/bin/confluentを実行してどのパッケージがそれを提供しているかを確認すると、これがわかります。

3依存関係には複数の強さがある であるため、依存関係の解決の実際の話は、一般的に、これまでに許可してきたよりも複雑です。パッケージAをインストールして、パッケージBを自動的にインストールした後、パッケージBを削除することができますパッケージAを削除する必要はありません。ただし、あなたのケースでは、メタパッケージはそれらに厳密な「依存」関係を持っているため、インストールされたままのパッケージがインストールされました。

1
Eliah Kagan