Mac でパスを通す: 意味とパスの通し方
UB3/informatics/mac/path
このページの最終更新日: 2024/09/30- 「パスを通す」とはどういう意味なのか?
- コマンドの実行ファイルがある場所
- コマンド検索パスとその確認方法
- Mac, Linux でのパスの通し方
- 一時的にパスを通す
- 恒久的にパスを通す
広告
「パスを通す」とはどういう意味なのか?
コマンドの実行ファイルがある場所
Mac や Linux には、ターミナルというアプリケーションがある。
ターミナルでは、コマンドの文字列を記入して return キーを叩くとコマンドが実行される。つまり
のようにする。ここで iMac はパソコンの名前、~ がカレントディレクトリ、Hiro はユーザー名、$ は「コマンドを打って下さい」の記号である。このあたりの説明は ターミナルのページ にある。パソコンの名前やユーザー名などは実行環境によって異なるので、このページでは $ 以前を省略して単に
のように記載する。このサイトの他のページでも、このように記載している場合が多い。
ls は、カレントディレクトリにあるファイル・フォルダの一覧を表示するコマンドである。ls とタイプすると、ターミナルが ls の実行ファイルをコンピューター内から探し出し、そのファイルを読み込んでくれる。これによって ls というコマンドが無事に実行されるわけである。
したがって、ターミナルは ls コマンドの実行ファイルが格納されている場所 (つまり ls のパス path) を認識していなければならない。これを確認するためのコマンドが
としてみよう。/bin/ls という答えが返ってくるはず。which によって確認された ls の実行ファイルは、/bin というディレクトリに格納されている ls というファイルであるということになる。
この場合、ターミナルは既に ls 実行ファイルの場所を知っているので、単に ls とタイプするだけで実行ファイルを見つけられる。しかし、ダウンロードしてきたプログラムを実行する場合、
コマンド検索パスとその確認方法
以上をもう少し専門的な用語を使って説明してみる。
ターミナルはアプリケーションであり、その中で動いているプログラムはシェルという (1)。また、ls などコマンドの「本体」は実行ファイルという。コマンドが入力されたときに、シェルが実行ファイルを探しに行く場所を
パスを通すとは、 新しいコマンドをインストールしたときに行う必要がある。コマンドによっては、パスを自動的に通してくれる場合もある。 |
コマンド検索パスは、$PATH という環境変数に設定されている (2)。
で、コロンで区切られた形で表示される。私の Mac の場合は次のようになった。2 行に分けて記載。
|
/usr/local/bin や /usr/bin はデフォルトのコマンド検索パス。X11 や Tex をインストールしたときに、自動的にパスが通されていたと思われる。
例外もあるかもしれないが、一般に Homebrew などを使ってインストールした関数は、自動的にパスが通っているディレクトリに置かれる。フォルダをダウンロードして make でコンパイルするような関数は、自分でパスを通す必要がある。
なお、同じ名前のコマンドが複数のコマンド検索パスにあるときは、リストの左側が優先される (2)。
パスの通し方
一時的にパスを通す
コマンド検索パスは環境変数 PATH として保存されているので、これを書き換えてやればいい。export は、シェル変数を環境変数にエクスポートする関数である。これを使って、
のようにする (6)。PATH=$PATH としているのは、既存のパスを上書きしないため。これは一時的なので、ターミナルを再起動すると消える。
恒久的にパスを通す
ホームフォルダに .bashrc というファイルを作り、そこにコマンド検索パスを追加する命令を書くという作業になる。基礎知識がないと意外と大変である。
vi エディタで .bashrc ファイルを編集する
まず .bashrc というファイルを作る。
これは .bashrc というファイルを編集するコマンドだが、ファイルが存在しない場合は新規にファイルを作ってから編集モードに入る。編集モードで
export PATH=$PATH:追加したいパスその2
のように .bashrc ファイルを編集し、Esc でコマンドモードへ抜ける。ここで :wq とすると、「保存して終了」となる。
export は、環境変数を表示および設定できるコマンド (3)。「PATH=$PATH:追加したいパス」は、現在のパス $PATH に「追加したいパス」を加えて、これを新しく PATH として保存するという意味。よって $PATH を忘れると、追加したパスのみが新しいパスになってしまうので注意。
cat で .bashrc の中身を確認できる。
文献 7 にある方法が簡単だったので、こちらもメモしておく。vi エディタを使わずに、テキストエディットで実行できるのでわかりやすい。zsh 用。あとでちゃんと更新。
open .zshrc # これでテキストエディットで開かれるはず
# あとは一緒。開いた .zshrc にe xport PATH=$PATH:追加したいパス を追加して保存。source で実行すれば反映される。
source で .bashrc を実行
最後に、.bashrc に書き込んだ内容を実行する必要がある。
とする。これを実行した後に echo $PATH とすると、パスが追加されていることが確認できるだろう。
この方法だと、ターミナルを起動したあとに毎回 source を実行しなければならない。.bash_profile というファイルを作り、そこに .bashrc を実行する命令を書き込めば、ターミナル起動時に自動でできるようになる。
ここ に .bash_profile の内容が書いてあったが、-f というコマンドがないというエラーが返ってきてしまう。とりあえずは毎回 source .bashrc を実行することにする。
広告
References
- シェルとは. Link: Last access 2018/02/05.
- PATH を通すとは? (Mac OS X)Link: Last access 2018/02/05.
- PATHを通すために環境変数の設定を理解する (Mac OS X)Link: Last access 2018/02/05.
- Last access 2018/02/05.
- Last access 2018/02/05.
- 環境変数PATHの通し方. Link: Last access 2021/12/25.
- MacOSX での PATH の通し方について解説. Last access 2023/09/28.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。