THIS IS A WORK IN PROGRESS. I don’t have full working instructions yet 🙁
I had a few problems getting Freenet 0.7.5 running on my Nexenta 2.0 Server installation, so I thought I would mention what I did.
Summary
To get Freenet running under Nexenta 2.0 Server, you need the following:
- Freenet 0.7.5 wrapper
- http://downloads.freenetproject.org/alpha/installer/freenet07.tar.gz
- Freenet 01222 build
- http://freenet.googlecode.com/files/freenet-build01222.jar
- apt-get installed packages
- java-runtime-headless nevada-compat
Instructions:
- Install the packages with apt-get.
- Extract the freenet07.tar.gz package somewhere.
- Copy the freenet-build01222.jar file into the extracted package directory where the run.sh file is. Name it freenet.jar
- Start the software with run.sh start.
- Try to figure out the rest because I haven’t had time.
Detail
I run my Nexenta server in a closet with no keyboard or monitor attached, so getting Freenet running in a headless mode was desirable. Using the headless system instructions from the “Linux and other Unix-like systems” section Freenet Download page, I got the software installed.
wget http://downloads.freenetproject.org/alpha/installer/freenet07.tar.gz cat freenet07.tar.gz | gzip -d | tar xv cd freenet ./run.sh start
When I called the run.sh script though, it failed as I didn’t have Java installed.
$ ./run.sh start Enabling the auto-update feature Detecting tcp-ports availability... Can not bind fproxy to 8888: let's try 8889 instead. /opt/freenet/0.7/bin/1run.sh: line 49: java: command not found /opt/freenet/0.7/bin/1run.sh: line 53: java: command not found Can not bind any socket on 127.0.0.1: IT SHOULDN'T HAPPEN! Make sure your loopback interface is properly configured. Delete Freenet's directory and retry.
So, I installed the java-runtime-headless package. It in turn pulled in a few extra packages and recommended a few more. I ignored the recommendations.
$ sudo apt-get install java-runtime-headless
Trying to run it again, I got a new error.
$ ./run.sh start Unable to locate any of the following binaries: /opt/freenet/0.7/./bin/wrapper-solaris-i86pc-32 /opt/freenet/0.7/./bin/wrapper Starting Freenet 0.7... Let's start the node without the wrapper, you'll have to daemonize it yourself. dl failure on line 685Error: failed /usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/client/libjvm.so, because ld.so.1: java: fatal: libCrun.so.1: open failed: No such file or directory
After some searching on Google, I found an article entitled Installing JDK6 in Nexenta Zone that mentioning the need for the nevada-compt to fix the libCrun.so.1 error. So, I installed that package.
$ sudo apt-get install nexenta-compat
Trying to run it again, I got a new error.
$ ./run.sh start Unable to locate any of the following binaries: /opt/freenet/0.7/./bin/wrapper-solaris-i86pc-32 /opt/freenet/0.7/./bin/wrapper Starting Freenet 0.7... Let's start the node without the wrapper, you'll have to daemonize it yourself. Exception in thread "main" java.lang.NoClassDefFoundError: freenet/node/NodeStarter Caused by: java.lang.ClassNotFoundException: freenet.node.NodeStarter at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: freenet.node.NodeStarter. Program will exit.
Argh… After poking around I now figured out that the actual Freenet software wasn’t included in the freenet07.tar.gz package. Looking at the files provided on http://freenet.googlecode.com/ I found the freenet-build01222.jar that looked interesting. I downloaded a copy to the same directory where the run.sh script was.
$ wget http://freenet.googlecode.com/files/freenet-build01222.jar -O freenet.jar
Trying to run it again, I got a new error.
$ ./run.sh startUnable to locate any of the following binaries: /opt/freenet/0.7/./bin/wrapper-solaris-i86pc-32 /opt/freenet/0.7/./bin/wrapper Starting Freenet 0.7... Let's start the node without the wrapper, you'll have to daemonize it yourself. Exception in thread "main" java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Caused by: java.lang.ClassNotFoundException: org.tanukisoftware.wrapper.WrapperListener at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 12 more Could not find the main class: freenet.node.NodeStarter. Program will exit.
I’m giving up for the moment. I’ve got other work to do, so I’ll put this on the back burner. Maybe somebody else can figure this out.
Hi.
To get wrapper download http://wrapper.tanukisoftware.org/download/3.3.7/wrapper-solaris-sparc-32-3.3.7.tar.gz, extract it and do cp wrapper-solaris-x86-32-3.3.7/bin/wrapper freenet/bin/wrapper-solaris-i86pc-32.
freenet should work fine then 😉