Почему обработчик «command-not-found» срабатывает для существующей команды?

Почему обработчик «command-not-found» срабатывает для существующей команды?

У меня был пакет (в данном случае Docker), для которого версия, доступная в репозиториях Ubuntu, была слишком старой, поэтому я добавил репозиторий Docker в свои исходники apt и установил пакет оттуда.

Теперь, когда я пытаюсь запустить его под своим обычным пользователем, срабатывает обработчик command-not-found:

user@host:~$ docker
The program 'docker.io' is currently not installed. You can install it by typing:
sudo apt-get install docker.io

Хотя двоичный файл в моем пути все в порядке:

user@host:~$ which docker
/usr/bin/docker

И у меня есть разрешения на выполнение:

user@host:~$ /usr/bin/docker
Usage: docker [OPTIONS] COMMAND [arg...]

A self-sufficient runtime for linux containers.
....

Я пробовал hash -r, пробовал запустить новую оболочку входа, но безуспешно: обработчик command-not-found все равно срабатывает.

Почему он так себя ведет? Может быть, потому, что пакет в репозиториях Ubuntu называется docker.io, а пакет в репозиториях Docker называется просто docker?

Можно ли решить эту проблему, не удаляя ее command-not-foundполностью?

EDIT: Как я установил последнюю версию из репозиториев Docker:

sudo -i
apt-get purge docker.io
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
echo "deb https://get.docker.com/ubuntu docker main" >/etc/apt/sources.list.d/docker.list
apt-get update
apt-get install docker

EDIT2: Я забыл упомянуть: я проверил, что /usr/bin/docker не является скриптом-оболочкой:

user@host:~$ file /usr/bin/docker
/usr/bin/docker:  ELF 64-bit LSB  executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=a5773ec80f810b977dc93bb10b4c6c6b8c2b1abd, not stripped

решение1

Часто проблема заключается в псевдонимах, например, псевдоним docker=docker.io в вашем bashrc/zshrc... Также стоит проверить, что версии A и B НЕ установлены вместе, это часто приводит к конфликтам пакетов и имен.

Связанный контент