14

I'm trying to install Euler expert system following these instructions. To add the environment variable I edited my /etc/environment to become as follows:

 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/home/mohammad/Desktop/eye"
 EYE_HOME = "/home/mohammad/Desktop/eye"

But when I use printenv PATH I don't see the new directory added to my path.

What am I doing wrong here?

Eliah Kagan
  • 117,780
  • That link isn't working right now (SourceForge is down) but can you specify whether you want system-wide environment variables? Since it's for an application, this is likely the case, and therefore a lot of the answers below are wrong. – Michael Scheper Jul 22 '15 at 17:51

4 Answers4

8

I don't know the reason why PATH wasn't changed (after relogin), but

EYE_HOME = "/home/mohammad/Desktop/eye"
--------^-^

those spaces prevent EYE_HOME to be set.

It should be noted that /etc/environment is not a script file, but a kind of assignment file that is read by PAM. OTOH such spaces are not allowed in script files like /etc/profile and ~/.profile either.

If you use a script file, you need to export the variables as shown in Avinash Raj's answer.

Please note that while ~/.bashrc works if you start your program from a terminal window, it may not work if you start it from the graphical environment, since it's not sourced by the display manager.

Gunnar Hjalmarsson
  • 33,540
  • 3
  • 64
  • 94
  • @gunnar-hijalmarsson --- correct. The fact that the display manager is not started from my shell bite me much times. I have posted a trick to see the variables that are set in the DE: http://askubuntu.com/a/356973/16395 – Rmano Dec 16 '13 at 18:16
  • Nice trick, @Rmano! Any chance that you can add it to https://help.ubuntu.com/community/EnvironmentVariables ? – Gunnar Hjalmarsson Dec 17 '13 at 07:06
  • Thanks - I never edited one of that and I do not know if I had the permissions. I will look into it if I have time, but otherwise feel free to copy/paste whatever you want --- that page needs badly to be put up-to-date. One question: do all the display managers (lightdm, gdm, kdm) source ~/.profile even if my default shell is not bash but, for example, zsh? – Rmano Dec 17 '13 at 15:13
  • Checked by myself. I use zsh; the applications launched by the DE see variables set in ~/.pam_environment and ~/.profile (NOT ~/.zprofile). This is good and bad, but the bad part is solved by changing .profile so that it sources my .zprofile and .zshenv. And I confirm that using .pam_environment is bad, it is overwritten sometime (shouldn't, but it is). – Rmano Dec 17 '13 at 15:27
  • @Rmano: I know that ~/.profile is sourced by lightdm and gdm; not sure about kdm. – Gunnar Hjalmarsson Dec 17 '13 at 20:28
  • Thanks! The spaces prevented me from setting it properly – 1mike12 Mar 05 '17 at 19:05
  • I have LD_LIBRARY_PATH=/opt/instantclient10_1 in /etc/environment, but after a reboot, LD_LIBRARY_PATH is not set when I open a terminal window. Why not? – battey Apr 29 '18 at 03:45
  • @battey: Please ask a new question if you need help with that. – Gunnar Hjalmarsson Apr 29 '18 at 11:32
5
gedit ~/.bashrc

After that add the below lines,

export EYE_HOME="/home/mohammad/Desktop/eye"
export PATH=$PATH:$EYE_HOME

Save the file and sourec it,

source ~/.bashrc
Avinash Raj
  • 78,556
  • 1
    would that be a system wide variable ? – Moha the almighty camel Dec 16 '13 at 11:48
  • http://askubuntu.com/questions/154665/how-do-i-set-java-environment-variables-system-wide – Avinash Raj Dec 16 '13 at 12:07
  • 1
    @AvinashRaj: this variables not only will be user-only, but they will not be seen if the application is not started from a command-line terminal... the graphical environment is started by itself, not using the user's shell. See http://askubuntu.com/a/356973/16395 – Rmano Dec 16 '13 at 18:12
0

You can try these two files too for system wide configuration:

  • /etc/profile
  • /etc/bashrc

For user wide configuration:

  • $HOME/.profile
  • $HOME/.bashrc

Just append the variables as you have done on /etc/environment. But you will have to login and logout (or run the proper reload). Maybe by login and logout /etc/environment would work but I am not sure.

Vinicius Tinti
  • 426
  • 2
  • 4
-1

You want to edit your .bashrc file in your home directory.

When you edit the path you should include :$PATH on the end so you don't replace the current path.