はじめに
「パスを通す」仕組みと手順について解説します。パスを通す方法だけを知りたい方は、「2.②パスを通す方法」を見てください。
【使用している環境】
・ターミナル.app / bash
( iTerm2 / zsh )
・PC:Mac
目次
1.そもそもパスを通すってどういうこと?何のためにするの?
2.パスの通し方
(1)設定ファイルについて
(2)パスを通す方法("vim"を使う方法)
(3)パスを通す方法(ファイルに直接入力する方法)
※"vim"を使ってパスを通せた場合、見る必要はありません。
(4)パスが通っているか確認してみよう
3.パスが通らない!困った時の対処法(私が失敗したこと)
(1)毎回sourceコマンドを打たないと、パスが反映されない!
・iTerm2の設定でハマっていた・・・。
(2)"export $PAtH"をターミナル上でしても、ログアウトすると消えてしまう!
・ターミナル上で”export $PATH”を実行してパスが通せた気になっていた件・・・。
4.まとめ
5.参考資料・リンク
・新Linux/Unix入門(第3版) Softbank Creative
・Qiita「Mac / Linuxの「locate」コマンドで高速ファイル検索|「find」コマンドとの違いから「mdfind」の紹介まで」
・Qiitachmod? chown? よくわからんって人のための、ファイル権限系まとめ
1.そもそもパスを通すってどういうこと?何のためにするの?
-パスを通すって何?
設定ファイルにパスの記載をすることによって、アプリケーションの実行ファイルの場所をターミナルに教えてあげる作業です。
-具体的にどうなるの?
パスを通すと、インストールされたプログラムをターミナルから簡単に起動することができるようになります。
(例えばjavaScriptなら、"jsc"というコマンドのみでjavaScriptの実行ファイルを起動できます。パスを通してなくても、ターミナル上で動かすことは可能ですが、毎回”/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc”とかするのは面倒ですよね・・・。)
2.パスの通し方
(1)設定ファイルについて
ターミナルは、以下の設定ファイルを読み込んで、実行ファイルの場所を判断しています。(以下の参照ファイルについては、"bash"を"zsh"に置き換えても同じです。)
一時起動シェルの場合は".bashrc"だけが実行されるので、ログインシェルと一時起動シェル共通で実行される".bashrc"に設定をしてみましょう!
・使用するシェルが、ログインシェルのときに参照される設定ファイル
<設定ファイル名(実行順)>
①/etc/profile(あれば)
②.bash_profile ※②のなかで".bashrc"が呼び出される。
.bash_login
.profile
③.bash_logout(あれば)
《ちなみに・・・設定ファイルはどこにある?》
ファイルの場所は、”mdfind”コマンドを使って探すことができます。
例えば、ターミナルで以下のコマンドを実行してみてください。$ mdfind .bashrc
<コマンドの内容を知りたい方はこちら>
Qiita「Mac / Linuxの「locate」コマンドで高速ファイル検索|「find」コマンドとの違いから「mdfind」の紹介まで」
※隠しファイルになっているので、標準の設定ではファインダー(フォルダ)にはたぶん表示されていません。隠しファイルを表示したいときは、以下のコマンドを実行してください。
・隠しファイルを表示する設定
$ defaults write com.apple.finder AppleShowAllFiles TRUE
・設定を反映させるためにファインダーを一旦切ります。
$ killall Finder
(2)パスを通す方法("vim"を使う方法)
設定ファイルに、「export $PATH="(実行ファイルのあるフォルダ名)"」を記載します。
ファイルはロックされており、root権限でファイルを上書きする必要があるので、rootになってから"vim"を実行してみましょう。
【手順】
①rootになる"su"コマンドを実行
→パスワードを要求されるので入力すると、root権限となります。$ su
②ファイルの内容を書き換える”vim"コマンドを実行
以下のコマンドをターミナルに打ってみましょう。$ vim .bashrc
すると、ファイルの内容が表示されます。
そこで、"i"を押すと、テキスト挿入モードになるので、「export $PATH="フォルダ名"」を入力してください。※もとからあるテキストを消さないように気をつけてください。
<設定ファイルに記載するテキスト>
$ export $PATH="実行ファイルのあるフォルダ名"
※実行ファイルのあるフォルダ名は、"mdfind"で探せます。
$ mdfind (実行ファイル名)
の結果をコピペしましょう。
終了するには、まず"esc"ボタン、次に":w(上書き)"ボタン、最後に":q!(終了)"ボタンを押します。すると、通常のターミナルの画面に戻ります。
※vim実行後は、権限をユーザーに戻しておきましょう$ su (ユーザー名)
とします。
(3)パスを通す方法(ファイルに直接入力する方法)
ファイルが上書きできる状態であれば、ファイルを開いて、「(2)パスを通す方法("vim"を使う方法)」と同じ様に以下の内容を入力すれば大丈夫です。$ export $PATH="(実行したいファイル名)"
-設定ファイルの場所や隠しファイルを表示させる方法は、「(1)設定ファイルについて」を参照してください。
-あと、初期設定だと書き込みの権限がないと思うので、書き込みの権限をユーザーに与えるために、"chmod"コマンドを使うといいでしょう。以下の記事を参考にしてみてください。
Qiitachmod? chown? よくわからんって人のための、ファイル権限系まとめ
(4)パスが通っているか確認してみよう
確認はテキストを表示させる"echo"コマンドでできます。$ echo $PATH
としてみてください。設定したフォルダが表示されていれば完了です。
※PATHは大文字で入力してください。シェルによっては、小文字で打った場合に内容が表示されません。
もしくは、目的のファイルを起動させたり
以下のようにターミナルに打ってバージョンが表示されるかを見てもいいでしょう。$ (実行ファイル名) -v(もしくは"--version")
3.パスが通らない!困ったときの対処法
(1)毎回"source"しないと、パスが反映されない!
設定ファイルにパスが書いてあるのに、反映されない時は、シェルが一時起動シェルではないか確認してください。(一時起動シェルの場合は、".bashrc"しか実行されません。)
ここで気をつけたいのが、起動したときに立ち上がるシェル=ログインシェルではないことです。iTerm2に切り替えた時に、ハマりました・・・。
ログインシェルの環境設定を開いて、CommandのところのLogin shellにチェックを打たないといけなかったみたいです。
(2)"export $PAtH"をターミナル上でしても、ログアウトすると消えてしまう!
ターミナル上での"export $PATH"が一時的なものだと知りませんでした・・・。次回起動時からもパスを反映させたいときは、設定ファイルに書き込みましょう。
4.まとめ
環境構築とかでつまづいて、ネットとか見まくっても、思ったとおりのトピックが見つけられなかったり、内容が難しすぎてわからないということがあったので、プログラミング初心者として、なかなかわからなかったことや困ったことを書いてみました。読んでいただいてありがとうございます。
5.参考資料・リンク
・新Linux/Unix入門(第3版) Softbank Creative
・Qiita「Mac / Linuxの「locate」コマンドで高速ファイル検索|「find」コマンドとの違いから「mdfind」の紹介まで」
・Qiitachmod? chown? よくわからんって人のための、ファイル権限系まとめ