Hi, I’m trying to get SCALE to work but I’m so confused by what they mean by PATH and I’m stuck.
https://github.com/spectral-compute/scale-docs/blob/master/docs/manual/how-to-use.md
I’m at the CMAKE step.
This is the official guide I’m following. I do understand what they mean by SCALE_PATH though as that is clearly explained but PATH is just very vague to me or I’m just misunderstanding it completely.
Explaining like you are 5:
If you have worked with programming languages, you might have come across global variables and inbuilt functions/keywords.
PATH
is a similar global variable for your terminal session.Every time you open up a terminal, you load up these “global variables”, and you/programs can access them (or the applications assigned to them).
So, let’s say you have your application (executable) as
/home/werecat/corncob/bin/corn
, instead of starting it with./home/werecat/corncob/bin/corn ...
, if you have/home/werecat/corncob/bin
in yourPATH
variable, you can just use it ascorn ...
.export PATH="/home/werecat/corncob/bin:$PATH"
just means:
PATH = /home/werecat/corncob/bin + PATH
- persist (export) path for the duration of this session (usually until you close the terminal tab)
If you see somewhere to add it to your
/home/werecat/.bashrc
file, it means “all commands in .bashrc file are auto-executed every time you start a new terminal session, so if you have it there, you won’t need to manually keep entering the command over and over again”.You can list these environment variables by just running:
env
Also, recommend you have a look at https://www.freecodecamp.org/news/how-to-set-an-environment-variable-in-linux/.
Hope this helps. Good luck on your Linux journey.
Thanks. That’s a good ELI5. Fortunately I managed to make sense of it before your reply but the link to environment variables is highly appreciated. As I already replied to someone else, I had no idea PATH was a global/environment variable and just assumed it’s telling me to specify path so I had no idea I need to RTFM as it confused me greatly and on top of that I did another mistake which confused me even more when I finally managed to get it to do correctly which made me think I am doing it wrong.
I gave up at CMAKE finally as I really need to RTFM more on that as it started to throw many errors at me.
So I don’t know how much you know about the shell, but the way that the linux command line works is that there are a set of variables, called environment variables, which dictate so me behavior of the shell. For example, $PATH variable, refers to what directories to search through, when you try to execute a program in your shell.
The documentation you linked, wants you to create a custom shell variable, called SCALE_PATH, consisting of a folder path, which contains the compiled binaries/programs of scale you want to run.
This command:
export PATH="${SCALE_PATH}/bin:$PATH"
temporarily edits your PATH variable to add that folder with the scale programs you want to run to your path, enabling you to execute them from your shell.