web-dev-qa-db-ja.com

PATHにあるプログラムに対して、Bashが「そのようなファイルまたはディレクトリはありません」と表示するのはなぜですか?

https://docs.docker.com/compose/install/ の手順に従ってcurlを使用してバイナリを直接ダウンロードし、Ubuntu 16.04マシンにdocker-composeをインストールしました/usr/local/bin/へ:

$ ls -lh /usr/local/bin/docker-compose 
-rwxr-xr-x 1 root root 16M Jul 11 15:55 /usr/local/bin/docker-compose

/usr/local/bin/は私のパスにあります:

$ echo $PATH
/home/me/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

実際には/usr/binの前にあることに注意してください。

そのバージョンを確認しようとすると、PATH関連のエラーのように見えます。

$ docker-compose --version
bash: /usr/bin/docker-compose: No such file or directory

実行可能ファイルのフルパスを指定することで、正しい動作が得られます。

$ /usr/local/bin/docker-compose --version

docker-composeバージョン1.24.0、ビルド0aa59064

またはSudoを使用して、

$ Sudo docker-compose --version
docker-compose version 1.24.0, build 0aa59064

$ docker-compose --versionを実行できないのはなぜですか? /usr/binで実行可能ファイルを検索する必要があるのに、なぜBashは特に/usr/local/binについて文句を言うのですか?

以前にaptを介してdocker-composeをインストールしたことは関係があるかもしれませんが、このパッケージを削除してパージしました。

3
Borea Deitz

問題は、以前のインストールからの既存のロケーションエントリであり、apt-get removeおよびapt-get purgeが削除またはパージしなかったようです。

hash docker-composeはエントリを削除します。詳細については、こちらをご覧ください。

https://github.com/docker/compose/issues/3371#issuecomment-381162525https://unix.stackexchange.com/questions/82991/bash-is-not-プログラムを見つける-それでも私のパス上に-

0
Borea Deitz