環境変数?Homebrew?ナンジャソレ
はじめに
よく環境構築の際に、ターミナルで色々コマンドを打っていると、Homebewを入れた方がいいだの、入れようとしたら環境変数が設定されていないだの、未知が未知を産むことが多々ある。
今回は、割と汎用的な2点について、めっちゃ詳しくなってみる。
Homebrewとは
カッコつけていうと、「パッケージ管理システム」
gitとかrubyとか色々なライブラリを一括管理して、他のパッケージとの整合性を確保する目的
これがないと、新しいバージョンを公式サイトからインストールしなきゃいけない。
他にも、ダウングレードも容易に行えるようになる!
macOSで利用できる「パッケージ管理システム」こそ、Homebrew
以下はインストールのコマンド
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
環境変数
[問題] Homebrewをインストールしたのに、brew -vでバージョンが見れない
[原因] パスが通っていない
[解決] PAHTHという環境変数に新しいパスを追加すること
echo >> ~/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
source ~/.zprofile
brew -v
環境変数の種類
PATH
システムがプログラムを探すときに使用するディレクトリのリスト
ここに設定されていないプログラムは、コマンドラインから実行できない
コロン区切りで11個のプログラムのパスが設定されている。
echo $PATH
/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
HOME
USER
SHELL
[Q]なぜ、環境変数を設定しなくても良いパターンがある?
例えば、gitをインストールするときは、環境変数をいじらなくても、git -vですぐに確認できる。
[A] gitのインストーラの実行コマンドの中に、環境変数を設定する内容が含まれているから。
番外編: Homebrewを入れる前にgitをインストールしてしまった場合の対処
つまり、OSにgitをインストールしてしまった場合、どちらのgitのバーションが実行されるのか不安になった。
以下のコマンドを実行で解決できた。
echo $PATH
> /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App
/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd
/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd
/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd
/codex.system/bootstrap/usr/appleinternal/bin
export PATH="/opt/homebrew/bin:$PATH"
source ~/.zprofile
git -v
homebrewが優先的に実行されるようになっている。
おわりに
ここら辺の環境構築は、社内のドキュメントに従うだけだったの改めて、それぞれのコマンドがどのような役割を果たしていて、何を構築しようとしているのかを把握しながら、できるようになった。