新規インストール時と更新インストール時でインストール先が異なる場合、更新インストール完了後にコマンドが実行できなくなることがある。
新規インストールと更新インストール時でインストール方法が異なる場合等に発生する可能性がある。
例: pip
pip
を更新した後、↓のようなエラーが発生するになった。
# pip
-bash: /usr/bin/pip: そのようなファイルやディレクトリはありません
やったこと
- 環境:
debian
- インストール方法:
- 新規インストール時:
apt
でpython-pip
パッケージからインストール - 更新インストール時:
pip install pip --update
で pipを更新インストールした
- 新規インストール時:
原因
コマンドパスのハッシュが更新後のパスを追随できていない。
詳細
更新後も pip
のファイル自体は存在する。
# type -a pip
pip は /usr/local/bin/pip です
pip
コマンドを実行するとどこを見るようになっているかは、
type
コマンドをオプション無しで実行すればわかる。
# type pip
pip はハッシュされています (/usr/bin/pip)
更新後には存在しない(削除してしまった)、更新前の参照先を見ている。
# ls -l /usr/bin/pip
ls: /usr/bin/pip にアクセスできません: そのようなファイルやディレクトリはありません
対策
コマンドパスのハッシュを更新する。
そのために、以下のコマンドを実行する。
# hash -r
#
# pip --version
pip 7.1.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)
直った。