¿Por qué el controlador de comando no encontrado se activa para un comando que existe?

¿Por qué el controlador de comando no encontrado se activa para un comando que existe?

Tenía un paquete (en este caso, Docker) cuya versión disponible en los repositorios de Ubuntu era demasiado antigua, así que agregué el repositorio de Docker a mis fuentes apt e instalé el paquete desde allí.

Ahora, con mi usuario habitual, cuando intento ejecutarlo, se activa el controlador de comando no encontrado:

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

Aunque el binario está en mi camino, ¿verdad?

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

Y tengo permisos de ejecución:

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

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

Lo intenté hash -r, intenté ejecutar un nuevo shell de inicio de sesión, pero fue en vano: el controlador de comando no encontrado todavía se activa.

¿Por qué se comporta así? ¿Es porque el paquete en los repositorios de Ubuntu se llama docker.io, pero el paquete en los repositorios de Docker se llama simplemente docker?

¿Puedo solucionar este problema sin eliminarlo command-not-foundpor completo?

EDITAR: Cómo instalé la versión reciente de los repositorios de 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

EDITAR2: Olvidé mencionar: verifiqué que /usr/bin/docker no es un script contenedor:

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

Respuesta1

Muchas veces es una cuestión de alias, por ejemplo. alias docker=docker.io en su bashrc/zshrc... También vale la pena comprobar que la versión A Y la versión B NO están instaladas juntas, lo que a menudo causa conflictos de nombres y paquetes.

información relacionada