SGI
Open Source
Rhino FAQ

This page has only been here since 8/7/00, so it's still a bit sparse. If your question isn't answered here, feel free to ask it on the mailing list!

Important! If you want to run the open-source version of Rhino on IRIX, please see these notes first!

General Questions:

Building/Installing: Running/Troubleshooting:

What operating systems does Rhino support?

Rhino builds & runs on IRIX and Linux (tested on SuSE 6.4 and RedHat 6.2). The Java-based client software can run both as an application installed on a client machine and as an applet in web browsers which have a Java runtime or which support the Java plugin. This means the machines you administer your systems from don't have to be the same OS as the systems being administered.

What are all these RPM packages for?

(This information is taken from the INSTALL.rpm.)

Server-side packages

sysadm_base-tcpmux
sysadmd (the Rhino system administration daemon) is started through tcpmux, which is started by inetd. This contains the tcpmux daemon (really just a wafer-theen layer between inetd and sysadmd) and a configuration file. When you install it, it will attempt to add a tcpmux entry to your inetd.conf.
sysadm_base-lib
Base libraries used by the server-side portion of Rhino-based applications. When you install it, it will attempt to add its lib directory to your ld.so.conf.
sysadm_base-server
This contains the sysadmd daemon, service and protocol modules, and commands for administering privileges. When you install it, it will attempt to add an entry to your tcpmux.conf file (installed by sysadm_base-tcpmux).

Client-side packages

sysadm_base-client
This is base software needed on the client side by Rhino applications.

Development packages

sysadm_base-dev
Headers for building Rhino-based applications.
sysadm_base-dev-doc
Tutorials and API documentation. (Also available here.)

What do I need to install?

On a server (a system which will be administered), you need sysadm_base-tcpmux, sysadm_base-lib, and sysadm_base-server. On a client (a system which you will do the administration from), you need sysadm_base-client. The client and server may be the same machine. You will also need the files specific to the application you're running: for example, to run the FailSafe GUI, you will need sysadm_failsafe-server on your servers and sysadm_failsafe-client on your clients.

Rather than installing software on client machines, you can also run your Rhino-based application as an applet from any system with a Java-enabled web browser. To do this, you will need to install sysadm_base-client on the server (it has jar files which will be served to the browser) as well as the application's web support, if any. (For the FailSafe GUI, you will need sysadm_failsafe-client and sysadm_failsafe-web on the server.)

For developing applications using Rhino, you will need the headers from sysadm_base-dev, and you will probably want the tutorial and API documentation from sysadm_base-dev-doc.

Build fails: "mv: en_US.old.po: No such file or directory"

See if you have the LINGUAS environment variable set. If so, unset it. (This may not be a real issue; this was set on someone's RedHat 6.1 box?)

What did you do to my configuration files?

Both make install and the RPM packages generated by make rpm attempt to use a Perl script called editconf.perl to edit your inetd.conf and ld.so.conf files if the lines they need aren't already there. (In the case of the RPM package, editconf.perl hangs around so that it can remove Rhino from those files if you ever uninstall the RPM.)

Here's what configuration files are modified when you run "make install" or install RPM packages:

inetd.conf
When you install sysadm_base-tcpmux, it adds a line for the tcpmux service. (On IRIX, tcpmux is built into inetd, so inetd.conf has a line for starting sysadmd as a tcpmux service, and you don't need a separate tcpmux.)
ld.so.conf
When you install sysadm_base-lib, it adds a line for Rhino's library directory (probably /usr/lib/sysadm/lib).
tcpmux.conf
(This file is installed by rhino as part of the sysadm_base-tcpmux package.) When you install sysadm_base-server, it adds a line for the sysadmd service. (If you have an inetd on Linux which has tcpmux built in, please let the mailing list know, because the current installation scripts won't handle that.)

If you don't want this to happen, and you're using rpm, you can use the --noscripts argument when installing the packages, but then you'll have to edit those files yourself in order to get Rhino working.

How do I run Rhino in debug mode?

(Sorry this is so brief for now.) On the server side, edit /var/lib/sysadm/sysadmd.conf (depending on your configuration; if that file isn't there, see if you've got a sysadmd.conf.example). Comments in that file describe how to turn on logging to a file. Also, note that whenever runpriv runs a privileged command, it logs the command and its arguments in /var/lib/sysadm/salog (although again that path depends on your configuration).

On the client side, start your Java runtime with the -DLog.debugLevel=ALL argument (before giving the class name):

        java -D Log.debugLevel=ALL \
            com.sgi.sysadm.manager.TaskManager ...
    

For example, to run the Linux FailSafe GUI with full debugging:

        java -cp $CLASSPATH -D Log.debugLevel=ALL \
            com.sgi.sysadm.manager.TaskManager \
            -p com.sgi.fsmgr -s testnode666
    

To run the Define Node task instead of the full TaskManager:

        java -cp $CLASSPATH -D Log.debugLevel=ALL \
            com.sgi.sysadm.manager.RunTask \
            -p com.sgi.fsmgr -s testnode666 \
            com.sgi.fsmgr.task.DefineMachineTask
    

To get line numbers in your Java stack traces, rebuild the sysadm_base classes with the -g flag. To do this, edit packages/javadefs.am and add -g to the JAVACFLAGS line. Also, when using the IBM JRE, run with the --nojit flag.