The CrashPlan website has installation instructions, but they’re meant for Solaris and aren’t quite right for OmniOS. This guide will show you how to install CrashPlan properly on OmniOS using the Oracle JRE (Java Runtime Environment).
Fixing the System Java
My version of OmniOS Stable (OmniOS v11 r151008) has some sort of packaging problem regarding the JRE. You can skip this section if you like, as it’s not required for installing CrashPlan using the Oracle JRE. I found a solution on an OmniOS mailing list.
The problem is that the system java binary cannot resolve the location of a linked library:
% which java
% java -version
ld.so.1: java: fatal: libjli.so: open failed: No such file or directory
% ldd /usr/bin/java
libthread.so.1 => /lib/libthread.so.1
libjli.so => (file not found)
libdl.so.1 => /lib/libdl.so.1
libc.so.1 => /lib/libc.so.1
libm.so.2 => /lib/libm.so.2
# cd /usr/lib
# ln -s /usr/java/jre/lib/i386/jli/libjli.so
# java -version
openjdk version "1.7.0_21"
OpenJDK Runtime Environment (build 1.7.0_21-b30)
OpenJDK Server VM (build 24.60-b03, mixed mode)
Installing the Oracle JRE
If you try to install CrashPlan now, it will still complain about not having the Sun (Oracle) JRE. You would see this if you had already downloaded CrashPlan, ran pkgadd and accepted the EULA (which we’ll get to later):
The current installed version of Java is not the Sun Java Runtime Environment.
CrashPlan requires the Sun JRE.
ERROR: Failed to find an acceptable Sun Java Runtime Environment
It would have been helpful if the CrashPlan instructions had told us that earlier! My guess is that you could just delete the check for the Sun (Oracle) version of Java from the checkinstall script, and use the system OpenJDK version instead. I decided to go ahead and install the Oracle JRE, so you’re on your own if you decide to stick with OpenJDK.
You can manually install the Oracle JRE v7 by downloading the tarball here and copying it to your system. Or, use this handy wget command. I install it into /opt:
## Executing postinstall script.
log dir: /opt/sfw/crashplan/log
mkdir: /opt/sfw/crashplan/log: [File exists]
adjusting service xml paths
adjusting manifest path
creating identity path
CrashPlan has been installed.
Default archive location:
Start Script (run as root):
Start Desktop UI:
You may connect a remote Desktop UI to this Service via port-forwarding
and manage it remotely. Instructions for remote management are in the
readme files placed in your installation directory:
To enable CrashPlan as a service (as root):
/usr/sbin/svccfg import /opt/sfw/crashplan/bin/crashplan.xml
/usr/sbin/svcadm enable crashplan
Thank you for installing CrashPlan for Solaris.
Installation of <CrashPlan> was successful.
Before we’re finished, update the CrashPlan settings file to use the correct JRE. Edit /opt/sfw/crashplan/install.vars and modify the JAVACOMMON value to point to the Oracle JRE that we just installed. Or, just run this command:
# sed -i -r 's|^JAVACOMMON=/usr/bin/java$|JAVACOMMON=/opt/jre1.7.0_51/bin/java|' /opt/sfw/crashplan/install.vars