Я использовал следующие команды для установки 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
в терминале, появляются доступные опции, и я могу их выполнить. Так как я могу полностью удалить его из моей системы?
TL; DR: Выполнение sudo apt --purge autoremove
должно работать для завершения удаления.
autoremove
, чтобы удалить оставшиеся зависимости. Вы удалили пакет confluent-platform-oss-2.11
, но это метапакет , который сам по себе не предоставляет никакого программного обеспечения . 1 sup> Установка его вызвал установку нескольких других пакетов, которые сами предоставляют программное обеспечение. Удаление confluent-platform-oss-2.11
приводит к тому, что эти другие пакеты имеют право на автоматическое удаление, но фактически не удаляют их. Чтобы удалить их сейчас, достаточно выполнить:
sudo apt autoremove
Или, если вы также хотите удалить общесистемные файлы конфигурации, связанные с программным обеспечением, вы можете запустить эту команду вместо :
sudo apt --purge autoremove
В любом случае apt
покажет вам, какие пакеты будут удалены, и спросит, хотите ли вы, чтобы это было сделано.
Вы по-прежнему можете запустить команду confluent
, поскольку эта команда предоставляется пакетом confluent-cli
, 2 sup>, установка которого 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 sup>
1 sup> Я догадывался, что это так; Затем я подтвердил это, проверив вывод dpkg-query -L confluent-platform-oss-2.11
в системе, в которой был установлен confluent-platform-oss-2.11
.
2 sup> Выполнение type confluent
, чтобы выяснить, где находится confluent
, затем dpkg -S /usr/bin/confluent
, чтобы выяснить, какой пакет его предоставляет,
3 sup> Реальная история разрешения зависимостей в целом более сложная, чем я рассказывал, потому что существует более чем одна сила зависимости [+1135]. Иногда можно установить пакет A, в результате чего пакет B будет установлен автоматически, а затем удалить пакет B без необходимости удаления пакета . Однако, в вашем случае, пакеты, которые остаются установленными, были установлены, потому что метапакет имеет строгое отношение «зависит» от них, и вряд ли что-то еще объявило какую-либо зависимость от них.