web-dev-qa-db-ja.com

バイナリが見つかりませんが、パスが$ PATHに含まれています

そこで、Ubuntu10.04にMercurialをインストールしようとしました。最初にppaリポジトリを使用しましたが、 pythonpath エラーが発生し、あきらめました。次の試みはソースからのインストールでしたが、hgが見つからないことを除いて、すべてうまくいきました。

$ hg
-bash: /usr/bin/hg: No such file or directory

ただし、hgは/ usr/local/bin /にインストールされます。

$ which hg
/usr/local/bin/hg

PATHにはこのディレクトリが含まれているのに、なぜhgが見つからないのですか?

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

フルパスでhgを実行すると、次のように機能します。

$ /usr/local/bin/hg --version

どんな助けでも本当にありがたいです!

8
floorish

Bashは、実行可能ファイルの場所のキャッシュを$PATHに保持します。ある時点で/usr/binhgがあり、そのシェルから実行しました。これで、/usr/bin/hgが削除されました。この場所を忘れるように実行中のシェルに指示する必要があります。

hash hg

キャッシュはシェルインスタンス間で共有されないため、新しいシェルではこの問題は発生しません。