同名のコマンドが複数存在する場合の対処
バージョン違いのアプリケーションをインストールした場合、PATHの先頭に書かれているディレクトリを順番に検索するため、意図したバージョンで動作しない可能性がある。
環境
- Fedora 12
Pythonを複数バージョンでインストール
Pythonの場合、複数バージョンをインストールするとバージョンが付与された実行コマンドが作成される。
※ /usr/bin/python -> /usr/bin/python2.6
※ /usr/local/bin/python2.5
確認すると、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開発環境を整えよう