I have been trying to get a program called "passenger-memory-stats" to run as the super user. The program is installed in the following directory: /usr/local/rvm/rubies/ruby-1.9.3-p327/bin/ruby . I know this because i installed phusion passenger using ruby gems:
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.24
- RUBY VERSION: 1.9.3 (2012-11-10 patchlevel 327) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p327
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.3-p327/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-1.9.3-p327/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/rvm/gems/ruby-1.9.3-p327
- /usr/local/rvm/gems/ruby-1.9.3-p327@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
/usr/local/rvm/gems/ruby-1.9.3-p327/bin $ ls -l | grep passenger-memory-stats
-rwxr-xr-x 1 guarddoggps rvm 416 Dec 14 2012 passenger-memory-stats
So obviously the program is there. I then add it to the root user's PATH environment variable:
$ sudo su
export PATH=$PATH:/usr/local/rvm/gems/ruby-1.9.3-p327/bin
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/rvm/gems/ruby-1.9.3-p327/bin
So now it has been added to PATH environment variable. I exit from sudo user to my regular user with sudo privilege and I run the following:
$ sudo passenger-memory-stats
sudo: passenger-memory-stats: command not found
sudo -E passenger-memory-stats
sudo: passenger-memory-stats: command not found
Why does it tell me command is not found? Didn't I add it to my sudo user's path? So I check:
sudo su
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
ANd to my surprise, the directory is no longer in the path. What happened?