amazon

8.5.14

バイナリファイルの呼び出し元を変更

ここここで書いたが、ターミナルでバイナリ名を叩いた時に呼び出されるファイルは、

$ type [バイナリ名]

$ which [バイナリ名]

で表示できる。

例えば、

$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

$ type python
python is /Library/Frameworks/Python.framework/Versions/2.7/bin/python

また、-aオプションを付けるとインストールされている一覧が表示される

$ which -a python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
/Library/Frameworks/Python.framework/Versions/2.6/bin/python
/usr/local/bin/python
/usr/bin/python
/opt/local/bin/python

$ type -a python
python is /Library/Frameworks/Python.framework/Versions/2.7/bin/python
python is /Library/Frameworks/Python.framework/Versions/2.6/bin/python
python is /usr/local/bin/python
python is /usr/bin/python
python is /opt/local/bin/python

バイナリ名を叩いた時に呼び出されるファイルはこの一覧の一番上にくるファイルである。

この順序を変更すればひも付けを変更できる。


ところで、-aオプションで表示される順序はパスの順序であるので、パスの順序を変更すればひも付けも変更する

パスの一覧を表示するには、

$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin/python:/Library/Frameworks/Python.framework/Versions/2.6/bin/python/usr/local/bin:/usr/bin:/opt/local/bin

例えば、pythonと叩いてpython2.6を呼び出したいのならば、

$ export PATH= /Library/Frameworks/Python.framework/Versions/2.6/bin/python:/Library/Frameworks/Python.framework/Versions/2.7/bin/python/usr/local/bin:/usr/bin:/opt/local/bin

とすればよい。

パスの設定方法はググってをみてください。


上記の例ではpythonですが他のバイナリでも同じです。perlなんかも複数インストールしていて呼び出し元を変更したい人がいるのではないでしょうか。

0 件のコメント:

コメントを投稿