概要
docker環境で、
railsチュートリアルを進めていたら、
急に下記のようにrailsコマンドが呼び出せなくなったので、
対処方法をメモ
bash: rails: command not found
環境
こちらの記事を参考にrailsのdocker環境を構築
https://qiita.com/reflet/items/f73cac406760ee4ecc13
解決策
railsのDockerファイルに下記のようにパス通しを記載しrailsコマンドを呼び出せるようにした。
ENV PATH $PATH:/usr/local/src/bin
そもそもコマンドって?
我々が普段使っているcd
やls
などは、魔法でもなんでもなく、全てプログラム
このプログラムを呼び出すための略称がコマンドという認識で良いと思います。
自分は、元々windowsユーザなのですが、Windowsユーザだと
exeファイルがイメージし易いかと思います。
C言語とかで、コマンドプロンプトにHelloWorld
と表示するhellow.exe
ファイルを作成して、
hellow.exe
をダブルクリックするとコマンドプロンプトが開きHelloWorld
と表示されます。
ls
コマンドだったらls.exe
をダブルクリックしたら、ファイルのリストがコマンドプロンプト上に表示されるそんなイメージで自分はいます。
間違ってたらすみません。。。。
パスって?
コマンドが、プログラムということがわかりましたが、
パソコンは、そのプログラムが何処にあるか知りません。
hellow.exe
がどのファイルに存在するのかパソコンは理解できないわけです。
そこで、PATH
という環境変数に、コマンドは、このパスの配下にあるプログラムだよ
と教えてあげることで、パソコンが、どのファイルの配下にhellow.exe
があるか理解できるという仕組みです。
これが俗にいうパスを通すというやつです。
小学生の時に友人から、インストールって本質的には、パスを通すことなんだよって
言われて、その時は、何が何だかって感じでしたが、今となっては、なるほどって感じです。
環境変数って?
お使いのMacやWindowsに設定されている、変数です。
パソコンに設定されているもや、ログインしているユーザごとに設定されている変数もあります。
後書き
何故急にコマンドが呼び出せなくなったのか不明ですが、
コマンドってなんだっけパスとかなんだっけというLinuxの基礎知識を得るいい機会でした。
何か、間違ってることありましたら、優しくご指摘いただけますと幸いです。