Changing PATH Environment Variable for all Users. (Ubuntu)
I recently compiled Ruby Enterprise Edition (REE) on an Ubuntu 8.04 server.
I would like to update my PATH to ensure this new version of Ruby (found in /opt/ruby_ee/bin
) supersedes the older version in /usr/local/bin
. (I still want the old version around, though.)
I would like these PATH changes to affect all users and crontabs.
Attempted Solution #1:
The REE documentation recommends placing the REE bin folder at the beginning of the global PATH in /etc/environment
. I altered the PATH in this file to read:
PATH="/opt/ruby_ee/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
This did not affect my PATH
at all.
Attempted Solution #2:
Next I followed these instructions and updated the PATH setting in /etc/login.defs
and /etc/crontab
. (I did not change /etc/sudoers
.)
This didn't affect my PATH
either, even after logging out and rebooting the server.
Other information:
- I seem to be having the same problem described here.
- I'm testing using the commands "
echo $PATH
" and "ruby -v
". - My shell is bash. My
.bashrc
doesn't override my PATH. - Yes, I have heard of the Ruby Version Manager project. ;)
Have you tried altering the default bashrc? This should be located in either /etc/bashrc or /etc/bash.bashrc (I think it's the second one in Ubuntu). Then in your home directory, make sure your .bash_profile includes:
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
This will make sure that the variables defined system-wide are read into the user's shell. This if-statement should be included by default in the .bash_profile created when you adduser
(I know it is in RHEL).
Just to be clear, /etc/environment
isn't loaded until you open a new shell / log in again.
Did you log-off and on?