Mac でパスを通す: 意味とパスの通し方

UB3/informatics/mac/path

このページの最終更新日: 2023/09/29

  1. 「パスを通す」とはどういう意味なのか?
    • コマンドの実行ファイルがある場所
    • コマンド検索パスとその確認方法
  2. Mac, Linux でのパスの通し方
    • 一時的にパスを通す
    • 恒久的にパスを通す

広告

「パスを通す」とはどういう意味なのか?

コマンドの実行ファイルがある場所

Mac や Linux には、ターミナルというアプリケーションがある。

Macのターミナル

ターミナルでは、コマンドの文字列を記入して return キーを叩くとコマンドが実行される。つまり

iMac:~ Hiro$ ls

のようにする。ここで iMac はパソコンの名前、~ がカレントディレクトリ、Hiro はユーザー名、$ は「コマンドを打って下さい」の記号である。このあたりの説明は ターミナルのページ にある。パソコンの名前やユーザー名などは実行環境によって異なるので、このページでは $ 以前を省略して単に

ls

のように記載する。このサイトの他のページでも、このように記載している場合が多い。

ls は、カレントディレクトリにあるファイル・フォルダの一覧を表示するコマンドである。ls とタイプすると、ターミナルが ls の実行ファイルをコンピューター内から探し出し、そのファイルを読み込んでくれる。これによって ls というコマンドが無事に実行されるわけである。

したがって、ターミナルは ls コマンドの実行ファイルが格納されている場所 (つまり ls のパス path) を認識していなければならない。これを確認するためのコマンドが which である。

which ls

としてみよう。/bin/ls という答えが返ってくるはず。which によって確認された ls の実行ファイルは、/bin というディレクトリに格納されている ls というファイルであるということになる。

この場合、ターミナルは既に ls 実行ファイルの場所を知っているので、単に ls とタイプするだけで実行ファイルを見つけられる。しかし、ダウンロードしてきたプログラムを実行する場合、ターミナルに実行ファイルの場所を教えてやる必要がある。この作業のことを パスを通す という。

コマンド検索パスとその確認方法

以上をもう少し専門的な用語を使って説明してみる。

ターミナルはアプリケーションであり、その中で動いているプログラムはシェルという (1)。また、ls などコマンドの「本体」は実行ファイルという。コマンドが入力されたときに、シェルが実行ファイルを探しに行く場所を コマンド検索パス という (2)。これらの用語を使うと、「パスを通す」は次のように説明できる。

パスを通すとは、コマンド検索パスを追加すること である。

新しいコマンドをインストールしたときに行う必要がある。コマンドによっては、パスを自動的に通してくれる場合もある。



コマンド検索パスは、$PATH という環境変数に設定されている (2)。

echo $PATH

で、コロンで区切られた形で表示される。私の Mac の場合は次のようになった。2 行に分けて記載。

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin: /opt/X11/bin:/Library/TeX/texbin


/usr/local/bin や /usr/bin はデフォルトのコマンド検索パス。X11 や Tex をインストールしたときに、自動的にパスが通されていたと思われる。

例外もあるかもしれないが、一般に Homebrew などを使ってインストールした関数は、自動的にパスが通っているディレクトリに置かれる。フォルダをダウンロードして make でコンパイルするような関数は、自分でパスを通す必要がある。

なお、同じ名前のコマンドが複数のコマンド検索パスにあるときは、リストの左側が優先される (2)。

パスの通し方

一時的にパスを通す

コマンド検索パスは環境変数 PATH として保存されているので、これを書き換えてやればいい。export は、シェル変数を環境変数にエクスポートする関数である。これを使って、

export PATH=$PATH:~/Documents/bio/

のようにする (6)。PATH=$PATH としているのは、既存のパスを上書きしないため。これは一時的なので、ターミナルを再起動すると消える。

恒久的にパスを通す

ホームフォルダに .bashrc というファイルを作り、そこにコマンド検索パスを追加する命令を書くという作業になる。基礎知識がないと意外と大変である。

vi エディタ というターミナル上で動くテキストエディタを使うが、この vi エディタが、慣れるまでは実に使いにくい。使い方は vi エディタとシェルスクリプトのページ にまとめる。ここでは、vi エディタをある程度使えることを前提に説明する。


vi エディタで .bashrc ファイルを編集する

まず .bashrc というファイルを作る。

vi .bashrc

これは .bashrc というファイルを編集するコマンドだが、ファイルが存在しない場合は新規にファイルを作ってから編集モードに入る。編集モードで

export PATH=$PATH:追加したいパスその1
export PATH=$PATH:追加したいパスその2

のように .bashrc ファイルを編集し、Esc でコマンドモードへ抜ける。ここで :wq とすると、「保存して終了」となる。

export は、環境変数を表示および設定できるコマンド (3)。「PATH=$PATH:追加したいパス」は、現在のパス $PATH に「追加したいパス」を加えて、これを新しく PATH として保存するという意味。よって $PATH を忘れると、追加したパスのみが新しいパスになってしまうので注意。

cat で .bashrc の中身を確認できる。

文献 7 にある方法が簡単だったので、こちらもメモしておく。vi エディタを使わずに、テキストエディットで実行できるのでわかりやすい。zsh 用。あとでちゃんと更新。

touch .zshrc
open .zshrc # これでテキストエディットで開かれるはず
# あとは一緒。開いた .zshrc にe xport PATH=$PATH:追加したいパス を追加して保存。source で実行すれば反映される。


source で .bashrc を実行

最後に、.bashrc に書き込んだ内容を実行する必要がある。

source .bashrc

とする。これを実行した後に echo $PATH とすると、パスが追加されていることが確認できるだろう。

この方法だと、ターミナルを起動したあとに毎回 source を実行しなければならない。.bash_profile というファイルを作り、そこに .bashrc を実行する命令を書き込めば、ターミナル起動時に自動でできるようになる。

ここ に .bash_profile の内容が書いてあったが、-f というコマンドがないというエラーが返ってきてしまう。とりあえずは毎回 source .bashrc を実行することにする。


広告

References

  1. シェルとは. Link: Last access 2018/02/05.
  2. PATH を通すとは? (Mac OS X)Link: Last access 2018/02/05.
  3. PATHを通すために環境変数の設定を理解する (Mac OS X)Link: Last access 2018/02/05.
  4. Last access 2018/02/05.
  5. Last access 2018/02/05.
  6. 環境変数PATHの通し方. Link: Last access 2021/12/25.
  7. MacOSX での PATH の通し方について解説. Last access 2023/09/28.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。