Open3

homebrewでインストールされるコマンドについて仕組みを理解する

O.SO.S

コマンドが格納されている場所とPATH環境変数について

コマンドが格納されている場所について

  • コマンドにはそれぞれの実行ファイルがある。
    • 例えば、lsコマンドは/bin/lsというファイルが存在する。(コマンドを実行する際に、/binディレクトリに格納されているファイルを実行しているということ。)

PATH環境変数

  • PATH 環境変数はコロン:で区切られたディレクトリのリストを保持し、これらのディレクトリ内でシェルがコマンドの実行ファイルを探す。
    • 環境変数 PATH において、:はディレクトリのリストを区切るための特別な記号として機能する。
    • PATH環境変数を設定すると、OSはこの環境変数PATHを参照し、コマンドの実行ファイル(シェルスクリプト)を検索する。
  • 上記のセクションで、/bin/lsというようなファイルが存在するといったが、実際にはlsと打ち込むだけでコマンドを実行できている。
  • これは、PATH環境変数に/binが登録されており、そのPATH環境変数からOSはコマンドの実行ファイルを検索するからである。
    • このように、PATH環境変数に/bin/opt/homebrew/binを登録することを、「パスを通す」という。

実際に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

参考

https://ulity.jp/?p=160
https://zenn.dev/d0ne1s/articles/1f435463551ac2

Tips

コマンドの実行ファイルがどこに存在するのかを確認する。

$ which ls
/bin/ls

https://uxmilk.jp/53550

O.SO.S

homebrewなどのパッケージツールが何をやっているのか?

役割

  • /opt/homebrew/以下のような、通常コマンドが配置される/usr/local/binのようなディレクトリとは別のディレクトリにインストールできる。
  • homebrewのパッケージ単位でコマンドを管理するので、削除や更新の管理を容易にする。