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-found
por 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.