【簡単】MacOSで環境変数を設定する方法

本サイトでは広告・プロモーションを利用しています。

はじめに

Windowsでは環境変数をGUIで設定できますが、MacOSはGUIの設定画面が用意されていないためCUIやテキストエディターで直接ファイルを編集して設定する必要があります。

サードパーティ製のツール(たとえばEnvPane)をインストールすればGUIでの設定も可能になりますが、インストールしなくても設定は簡単にできるので、この記事ではCUIでの環境変数の設定方法をお伝えします。

前提知識

環境変数とはOSレベルで利用できる変数のことを意味します。環境変数を設定すると言ってもどのタイミングで利用される環境変数かによって編集対象のファイルが変わります。そのためあなたがどのファイルを編集するべきなのか理解してもらうために、前提となる知識を本章でお伝えします。とりあえず設定できれば良いという人は「設定方法」の章まで飛んでもらってOKです。

重要な単語は以下です。それぞれ簡単に説明します。

  • シェル
  • ログインシェル
  • インタラティブシェル

シェル

OSに対して命令を与えるための機能です。コマンドとOSの動作が紐づけられており、人が理解できる形で表現されたコマンドを、OSが動作するように翻訳した上でOSに伝えてくれます。

シェルの語源は貝殻。OSの機能の外側、つまりインターフェースとして機能することから名付けられています。

シェルにはbashやzsh、kshなど色々な種類があり、設定用ファイルの名称や設定方法はシェルの種類によって異なります。

ログインシェル

OSなどのシステムにログインした時に実行されるシェルです。PCを起動した時にログイン画面が表示され、ユーザー名とパスワードの入力を求められると思いますが、その画面で正しいユーザー名とパスワードを入力しログインしたタイミングでログインシェルが起動しOSの挙動に必要なもろもろの設定をします。環境変数はログインシェルにて設定することが一般的です。

インタラクティブシェル

ユーザーからのコマンド入力を受け付け、その結果を画面で表示してくれるシェルです。Macにおけるターミナル、Windowsにおけるコマンドプロンプトで動作するシェルです。ログインシェルはログインに応じて自動で実行されるシェルであるのに対し、インタラクティブシェルの場合は意図的にインタラクティブシェルが動作するソフトウェアを起動させる必要があります。

ログインシェルではなくインタラクティブシェル用に環境変数を設定することも可能です。

前提知識まとめ

人が理解できるコマンドをOSに伝えてくれる機能をもつソフトウェアがシェルであり、システムログイン時に動くログインシェルと、ユーザーによる入力を受けて動作するインタラクティブシェルがあります。

OS自体に環境変数を設定したいのであればログインシェルで読み込まれるファイルに環境変数を設定、インタラクティブシェルで利用できれば良いのであれば、インタラクティブシェル用の設定ファイルに環境変数を設定します。

Catalina以降のMacOSのデフォルトのログインシェルとインタラクティブシェルはzshで、それよりも前のバージョンのOSではbashでした。大半の方はCatalina以降のOSを利用されていると思いますので、この記事ではzsh用の環境変数の設定方法を説明します。

設定方法

環境変数を設定する場合、ログインシェルの起動時に設定が完了することで、ターミナルを起動しなくても環境変数が設定される状態になります。またログインシェルによって設定された環境変数はインタラクティブシェルでも有効です。

ここから説明する方法はログインシェルが起動した際に読み込まれるファイルを編集し、環境変数をログインと同時に設定できるようにする方法の解説です。以下の手順に従って設定してください。

  1. Launchpadからターミナルを開く(デフォルトだと"その他"の中に入っているはず)
  2. 「ls -a」と入力した後にEnterキーを押し、出力結果に.zshrcというファイルがあるか確認する
  3. (手順2で.zshrcがなかった場合のみ)「touch .zshrc」と入力した後にEnterキーを押し、新しく.zshrcファイルを作る
  4. 「open .zshrc」と入力し、.zshrcファイルをテキストエディタで開く
  5. 以下の書き方で環境変数を設定する。
    export 環境変数名=環境変数に設定したい値
    例: export TEST_ENV=testing
  6. 環境変数を現在のシェルでも有効になるように「source .zshrc」を実行する
  7. 設定されたか以下の書き方で確認する
    echo $環境変数名

無事設定できていることが確認できました。

ちなみに今回はすでに起動中のターミナルでも正しく環境変数が設定されているか確認するためにsourceコマンドを実行していますが、次にターミナルを起動する時やOSにログインする時には自動で.zshrcが読み込まれますのでsourceコマンドを実行する必要はありません。

注意点

注意点を述べます。環境変数の中には.zshrc以外にもファイルが存在し、そのファイルによって環境変数が設定されている場合があります。例えばPATHという環境変数がありますが、すでに値が設定されています。PATHに新たなフォルダーパスを追加したい、というように環境変数の元の値に新たに何か別の値を設定した場合、.zshrcには以下のような記述をしてください。

export 環境変数名=環境変数に設定したい値:$環境変数名

例として、先ほど挙げたPATHという環境変数に新たなフォルダーパス「/Library/Java/」を追加したいときの設定を載せます。

すでに設定済みの環境変数を利用した設定方法です。

開発知識Mac

Posted by ラプラス