1. vmmhypervisor

    No comment

    vmmhypervisor
Changes in tags
Changes in body
Source | HTML | Preview

新規インストール時と更新インストール時でインストール先が異なる新規インストール時と更新インストール時でインストール先が異なる場合、更新インストール完了後にコマンドが実行できなくなることがある。
(インストール手段が異なるとかに)場合、更新インストール完了後にコマンドが実行できなくなることがある。新規インストールと更新インストール時でインストール方法が異なる場合等に発生する可能性がある。

例: pip

pippipを更新した後、↓になった。を更新した後、↓のようなエラーが発生するになった。

# pip
-bash: /usr/bin/pip: そのようなファイルやディレクトリはありません

debianで新規インストール時はaptでpython-pipパッケージからインストール。コマンドパスのハッシュが更新後のパスを追随できていない。
その後、pip install pip --update でpipを更新したらこうなった。

やったこと

  • 環境: debian
  • インストール方法:
    • 新規インストール時: aptpython-pip パッケージからインストール
    • 更新インストール時: pip install pip --update で pipを更新インストールした

原因

詳細

コマンドパスのハッシュが追随できていない。更新後もpip のファイル自体は存在する。

# type -a pip
pip は /usr/local/bin/pip です

pipちゃんとある。コマンドを実行するとどこを見るようになっているかは、
pipコマンドを実行するとどこを見るようになっているかは、
typetypeコマンドをオプション無しで実行すればわかる。コマンドをオプション無しで実行すればわかる。

# 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)

直った。