Open3
homebrewでインストールされるコマンドについて仕組みを理解する
- PATHを通す
- (シンボリックリンクは他の記事で扱う。)
コマンドが格納されている場所とPATH環境変数について
コマンドが格納されている場所について
- コマンドにはそれぞれの実行ファイルがある。
- 例えば、lsコマンドは
/bin/ls
というファイルが存在する。(コマンドを実行する際に、/bin
ディレクトリに格納されているファイルを実行しているということ。)
- 例えば、lsコマンドは
PATH環境変数
- PATH 環境変数はコロン
:
で区切られたディレクトリのリストを保持し、これらのディレクトリ内でシェルがコマンドの実行ファイルを探す。- 環境変数 PATH において、
:
はディレクトリのリストを区切るための特別な記号として機能する。 - PATH環境変数を設定すると、OSはこの環境変数PATHを参照し、コマンドの実行ファイル(シェルスクリプト)を検索する。
- 環境変数 PATH において、
- 上記のセクションで、
/bin/ls
というようなファイルが存在するといったが、実際にはlsと打ち込むだけでコマンドを実行できている。 - これは、PATH環境変数に
/bin
が登録されており、そのPATH環境変数からOSはコマンドの実行ファイルを検索するからである。- このように、PATH環境変数に
/bin
や/opt/homebrew/bin
を登録することを、「パスを通す」という。
- このように、PATH環境変数に
実際にPATHを標準出力してみる
$ echo $PATH
/bin:/Users/ochishouichi/.nodebrew/current/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/Users/ochishouichi/.nodebrew/current/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
:
区切りになってるので、リスト化すると以下のようになる。
/bin
/Users/osXXXXX/.nodebrew/current/bin
/opt/local/bin
/opt/local/sbin
/usr/local/bin
/Users/osXXXXX/.nodebrew/current/bin
/opt/homebrew/bin
/opt/homebrew/sbin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
参考
Tips
コマンドの実行ファイルがどこに存在するのかを確認する。
$ which ls
/bin/ls
homebrewなどのパッケージツールが何をやっているのか?
役割
- /opt/homebrew/以下のような、通常コマンドが配置される/usr/local/binのようなディレクトリとは別のディレクトリにインストールできる。
- homebrewのパッケージ単位でコマンドを管理するので、削除や更新の管理を容易にする。