Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to configure a build from source an old version of gcc on my dev machine. The documentation highlight several environment variables that need to be changed in order to do this. I was wondering how to do this and also where linux stores them and if a system restart is required for any changes to be registered??

share|improve this question
Can you list the Environment variables that need to be changed? – Hashken Jul 17 '12 at 8:57
up vote 4 down vote accepted

The Global environment variables of your system are stored in /etc/environment.
Any changes here will get reflected throughout the system and will affect all users of the system. Also, you need a Reboot, for any changes made here to take effect.

User level Environment variables are mostly stored in .bashrc and .profile files in your Home folder. Changes here only affect that particular user. Just close and open the terminal for configuration changes to take place.

Edit : If you don't want to Reboot or restart your terminal, you can make use of the source command.
Eg. source /etc/environment or source .bashrc

share|improve this answer
You don't need a reboot. You can use source command to load the variables after a change. ex: source /etc/environment or source .bashrc – Manula Waidyanatha Jul 17 '12 at 8:39
Thanks for the info. Updated my answer – Hashken Jul 17 '12 at 8:48
For what you are trying to do changing .profile in not the right thing to do. .bashrc should not be used as it can under some situations lead problems. And /etc/environment is way out (don't change the system to do one job). – richard Jul 17 '12 at 8:54

What you need is local temporal changes. You are not going to need them tomorrow, when you are doing something else, it may break the thing you do tomorrow. However you could save it as a build-script/makefile for use tomorrow.

export VARIABLE=value
export VARIABLE2=another_value
gcc …


VARIABLE=value VARIABLE2=another_value gcc …

note: If using make, the first example wont work. Make starts a new shell (sh) for each line.

share|improve this answer

You should place your environment variables on a per-user basis in ~/.pam_environment

Create the file if it doesn't exist. See here

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.