同名のコマンドが複数存在する場合の対処

バージョン違いのアプリケーションをインストールした場合、PATHの先頭に書かれているディレクトリを順番に検索するため、意図したバージョンで動作しない可能性がある。

環境

Pythonを複数バージョンでインストール

Pythonの場合、複数バージョンをインストールするとバージョンが付与された実行コマンドが作成される。
※ /usr/bin/python -> /usr/bin/python2.6
※ /usr/local/bin/python2.5

  • パッケージからインストールした場合の実行コマンドのパス: /usr/bin/python
  • ソースコードからインストールした場合の実行コマンドのパス: /usr/local/bin/python


確認すると、Python実行コマンドが配置されているディレクトリのうち、
検索順: /usr/local/bin/ > /usr/bin のため、/usr/local/bin/pythonのほうが実行される。

  • 確認
$ type -a python
python is /usr/local/bin/python
python is /usr/bin/python

ver2.6 を使用したいがver2.5だった場合は、
/usr/local/bin/python を削除して、/usr/bin/python2.6のシンボリックリンクに変更する。

/usr/local/bin/pythonをver2.5からver2.6へ変更
$ python -V
Python 2.5.5
$ sudo rm -f /usr/local/bin/python
$ sudo ln -s /usr/bin/python2.6 /usr/local/bin/python
確認
$ python -V
Python 2.6.2
$ printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$ type python
python is hashed (/usr/local/bin/python)
$ type -a python
python is /usr/local/bin/python
python is /usr/bin/python
作業後

Pythonのライブラリのインストールには、easy_installというツールを使用しているが、
バージョン混在してから、Python2.6の追加ライブラリのインストール先が、
/usr/lib/python2.6/site-packagesではなく、
/usr/local/lib/python2.6/site-packagesになってしまっている。
デフォルトでインストールされているPythonは、RPMパッケージのインストール管理ツール等で、システム的に使用しているため、Pythonの開発環境は、自分のホームディレクトリに構築したほうがいいかもしれない。

  • Python開発環境を整えよう

http://labs.unoh.net/2007/04/python.html