ガクセイハッカソン#1の開催レポート
2023-12-19 公開
Web開発では、さまざまなコマンドラインツールを使用することがあります。その際にコマンドラインツールをインストールしたにも関わらず、コマンドが見つからないといったトラブルに直面することがよくあります。この記事では、その原因であるパス(PATH)を解説します。
コマンドをインストールした後に、そのコマンドを実行しようとすると、次のようなエラーが表示されることがあります。
ここでは、npmのインストール状況を確認するために、バージョン情報を出力するnpm --version
というコマンドを実行したところ、command not found: npm
というエラーが表示されました。
このコマンドが見つからないトラブルの基本的な原因は、そのコマンドが含まれるディレクトリがPATHに設定されていないことです。
パス(PATH)は、オペレーティングシステムがコマンドや実行可能ファイルを探すための環境変数です。環境変数とは、システムやプログラムが使用する設定情報を保持する変数のことです。PATHは、コマンドラインでコマンドを実行する際に、そのコマンドが格納されているディレクトリへのパスをシステムに伝えます。
例えば、PythonやNode.jsなどの開発ツールをインストールすると、その実行可能ファイルは特定のディレクトリに保存されます。これらのツールをコマンドラインから直接呼び出すためには、そのディレクトリがPATHに含まれている必要があります。
この問題を解決するに、まず現在のPATH設定を確認します。PATHは環境変数なので、ターミナルでecho $PATH
と入力することで値を確認できます。
次のPATH設定の確認を出力例を示します。
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
コロン (:) で区切られた複数のディレクトリパスを含んでおり、これらのディレクトリはシステムがコマンドや実行可能ファイルを検索する場所を示しています。各ディレクトリは、PATH内の順序通りに検索され、コマンドが見つかった場合、最初に見つかったディレクトリから実行されます。上記の例では、
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
の順にディレクトリが検索されます。
コマンドのインストール先がこれらパスの参照先でない場合は、新たにパスに追加する必要があります。
例えば、あるツールが/path/to/directory
ディレクトリにインストールされている場合、次のコマンドを実行してPATHの設定を追加します。
export PATH=$PATH:/path/to/directory
exportコマンドは、環境変数を設定するために使用され、今回はexportコマンドを使って新しい環境変数を設定し、既存の環境変数を更新しています。
ただ、先ほどのexport
コマンドの実行では現在のセッションにのみの適用となり、ターミナルを閉じると設定は消えてしまい、新たに立ち上げたシェルには適用されません。
そこで、ターミナルを立ち上げるたびにexport
コマンドを呼び出して自動的にパス設定を読み込ませるためにログインシェルの設定ファイルにパスを追加します。
パス設定を行う際には、まずどのログインシェルを使用しているかを知ることが重要です。ログインシェルは、ターミナルを開いたときに自動的に起動するコマンドラインインターフェースのことです。一般的にはBashやZshなどがあり、シェルによって設定ファイル(例:.bash_profile, .zshrcなど)が異なります。
現在使用しているシェルを確認するには、ターミナルで次のコマンドを入力します:
echo $SHELL
このコマンドは、現在のログインシェルのパスを表示します。例えば、/bin/bash
が表示された場合はBashを使用しており、/bin/zsh
が表示された場合はZshを使用しています。
使用しているシェルが分かったら、設定ファイル(Bashなら.bash_profile
、Zshなら.zshrc
)にパスを追加します。このファイルはユーザーフォルダ直下に置かれます。例えば、/path/to/directory
をPATHに追加する場合、以下のように記述します。
export PATH=$PATH:/path/to/directory
この行を設定ファイルに追加することで、シェルが開始する度に設定が自動的に読み込まれるようになります。編集し保存したら、設定を有効にするsource
コマンドを実行します。
source ~/.bash_profile
これにより、新しいパス設定が現在のシェルセッションに反映されます。
コマンドの配布元のドキュメントやには、PATHの設定方法が記載されていることが多いので必ず確認しましょう。
また、Homebrewを用いてインストールした場合は、インストール後に表示されるメッセージにPATHの設定方法が記載されていることも多いので、英語のメッセージも読み飛ばさないように注意しましょう。
例えば下記のようなメッセージが表示されます。
よりPATHやシェルについて知りたい人は、これらの記事も参考にしてみてください。
.zshrc
を更新することで、macOSのターミナルをより便利にカスタマイズする方法を紹介しています。