Hi,
I am trying to get Gosu up and running on a Linux 64-bit Red Hat server. I have followed the instructions, and edited the ~/.bashrc as instructed. When I run "gosu -version" under my own user account, I get the version number returned - as expected. However, when I sudo -su to root, I get the following:
[root@WHML30627 bin]# gosu -version
/usr/gosu/gosu-0.8.6.1-C/bin/gosu: line 4: dirname: command not found
/usr/gosu/gosu-0.8.6.1-C/bin/gosu: line 14: dirname: command not found
/usr/gosu/gosu-0.8.6.1-C/bin/gosu: line 15: readlink: command not found
ls: /../jars: No such file or directory
Exception in thread "main" java.lang.NoClassDefFoundError: gw/lang/shell/Gosu
Caused by: java.lang.ClassNotFoundException: gw.lang.shell.Gosu
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: gw.lang.shell.Gosu. Program will exit.
Can anyone explain why root isn't happy running Gosu? I can run "java -version" when sudo'd to root, no problem. I have exactly the same entries in my ~/.bashrc for root as I have for my own user, so I don't understand why root isn't running Gosu.
Root's Bash profile:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
export JAVA_HOME=/usr/java/jdk1.6.0_35
export GOSU_HOME=/usr/gosu/gosu-0.8.6.1-C
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$GOSU_HOME/bin
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
My user's bash profile:
# .bashrc
export JAVA_HOME=/usr/java/jdk1.6.0_35
export GOSU_HOME=/usr/gosu/gosu-0.8.6.1-C
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$GOSU_HOME/bin
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
Any ideas?
Thanks,
Colin