#はじめに
環境:
MacOS
注意:
ターミナルで実行するコマンドの先頭にはこんな風に【$】が記載されています。
$ コマンド
このは「ターミナルで実行するコマンドだよ!」と知らせるもので、実際に & も打ち込んで実行するとエラーになるので注意してください。
(私は駆け出しの頃ネットに出てくるコードをコピーしていたので勿論 $ を打ち込み続け環境構築で挫折しました 笑)
#起こっている問題
Laravelをインストールして、パスを通します。
$ export PATH=$HOME/.composer/vendor/bin:$PATH
通したパスの変更を反映するため
$ source ~/.bash_profile
を実行します。
これでパスが反映されて、パスを通した直後は「laravel」コマンドが使えます。
しかし、一度ターミナルを落として「laravel」コマンドを実行すると
-bash: laravel: command not found
と表示され、「laravel」コマンドが使えなくなる問題。
#対処法
まず原因は何かというところを考えました。
ターミナル上でComposerをインストールした後に以下のコードでLaravelをインストール
comporserコマンドの導入と使い方については[こちら]
(https://qiita.com/suke/items/770bccf8a43f9247daf5)
$ composer global require "laravel/installer" --prefer-dist
これでLaravelのインストールが完了しました。
しかし「laravel」コマンドはパスを通さないと使えないのでこちらを実行
$ export PATH=$HOME/.composer/vendor/bin:$PATH
そしてこのパスを反映させるために
$ source ~/.bash_profile
これでパスが通って「laravel」コマンドが使えます。
しかし、今回の問題にもあるように、一度ターミナルを落としたら「laravel」コマンドが使えなくなります。
毎回パスを通すのが面倒ですし、どうしたものかと考えました。
**「これってどこでパス管理してんの??どこにパス保存してんの??」**と
調べたらこんな記事がありました
「ふむふむ。ターミナル上で使えるコマンドの管理をしているファイルは『.bash_profile』っていうファイルで管理しているのか!」
つまり、『.bash_profile』というファイルでパスを管理しているみたいです。
なのでホームディレクトリで『.bash_profile』を探しました。
探し方は、まず.bash_profileがホームディレクトリ(ディレクトリの親玉みたいなとこ)にいるので、移動する cd コマンドを使ってホームディレクトリに移動しました。
$ cd
でホームディレクトリに移動して、ホームディレクトリ内でこちらを実行。
$ ls -a
lsはファイルを探すコマンドです。
.bash_profileは先頭に「.(ピリオド)」が付いる「隠しファイル」なので、普通の状態では見れません。
なので、隠しファイルを見れるようにする -a というオプションをls の後に付けて、隠しファイルも含めた全部のファイルを見ちゃいます。
すると、ターミナル上にザーッとホームディレクトリに入っているファイルやディレクトリが表示されますので「.bash_profile」を探しましょう!
##.bash_profileが無い場合
私はホームディレクトリに.bash_profileがありませんでした。
なので、いくらパスを通してもパスを保存するファイルがありません。
ターミナルを落とすと「laravel」コマンドが使えなくなる原因は恐らくこれ。
なので、まず.bash_profileを作りました。
作り方はホームディレクトリにいる状態で
$ touch .bash_profile
これで.bash_profileがホームディレクトリに作られました。
作られたか確認してみましょう。
もう一度ホームディレクトリで
$ ls -a
.bash_profileがあれば成功です!
##パスを通そう
これでパスを.bash_profileに保存できるはずなので、
$ export PATH=$HOME/.composer/vendor/bin:$PATH
$ source ~/.bash_profile
を実行。そして.bash_profileを見てみました。
.bash_profileの中身を見るには「vim」というものを使います。
ちょっと特殊なので使い方はこちら
$ vim ~/.bash_profile
ちょっと怪しげなこんな画面になります。
キーボードの「i」をクリックすると入力モードになります。
(画面下に「INSERT」と出たら入力モードです)
vimを終了したい時は「esc」ボタンを押して
「:」「w」「q」を押してエンターを押してください。
これで終了と保存の両方を行うことができます。
このvimで開いた.bash_profileにパスが保存されるのですが、ターミナルを落として再度vimを見ると、綺麗さっぱりパスがなくなってます。(なぜだ)
今回の「laravel」コマンドが使えない問題は、.bash_profileにパスがうまく保存されないのが原因だとここで分かりました。
つまり.bash_profileにパスを保存できれば、ターミナルを落としても「laravel」コマンドが使えるようになるはずです。
なので、
$ vim ~/.bash_profile
でvimを開いて、「i」を押して入力モードにします。
そして先程打ったパスを.bash_profileに記載します。
export PATH=$HOME/.composer/vendor/bin:$PATH
これで「esc」ボタンを押して
「:」「w」「q」を押してエンターを押してvimを終了&保存させます。
その後、.bash_profileにパスを反映させたいので
$ source ~/.bash_profile
を入力。これで反映&保存完了です!
これで、ターミナルを落として再度.bash_profileを見ると、先程入力したパスが保存されています。
$ laravel -V
とすると、無事にLaravelのバージョンが出てきました!
これで無事にターミナルを落としても「laravel」コマンドが使えるようになりました!!