Monday, January 17, 2011

How to install Kestrel on Ubuntu 10.04

What is Kestrel ?

From https://github.com/robey/kestrel :

Kestrel is based on Blaine Cook's "starling" simple, distributed message queue, with added features and bulletproofing, as well as the scalability offered by actors and the JVM.

Pre-requirements:

In order to install Kestrel, you need to have java, scala as well as sbt installed. I've gathered a few links here and there that explain how to do so. 

Install Java

Follow instructions there : 
http://www.ubuntugeek.com/how-install-sun-java-runtime-environment-jre-in-ubuntu-10-04-lucid-lynx.html

Install Scala:

$ wget http://www.scala-lang.org/downloads/distrib/files/scala-2.8.1.final.tgz 
$ tar -zxf scala-2.8.1.final.tgz 
$ sudo mv scala-2.8.1.final /usr/share/scala 
$ sudo ln -s /usr/share/scala/bin/scala /usr/bin/scala 
$ sudo ln -s /usr/share/scala/bin/scalac /usr/bin/scalac

Instal sbt:

Follow instructions there : http://code.google.com/p/simple-build-tool/wiki/Setup

Install daemon ( http://libslack.org/daemon/ )

$ cd /tmp 
/tmp$ wget http://libslack.org/daemon/download/daemon-0.6.4.tar.gz 
/tmp$ tar -xzvf daemon-0.6.4.tar.gz 
/tmp$ cd daemon-0.6.4 
/tmp/daemon-0.6.4$ ./configure
/tmp/daemon-0.6.4$ make 
/tmp/daemon-0.6.4$ make test 
/tmp/daemon-0.6.4$ sudo make install

Checkout the latest version of Kestrel on github.com

~$ cd /tmp
/tmp$ git clone git@github.com:robey/kestrel.git
/tmp$ cd kestrel
# Build from source
/tmp/kestrel$ sbt clean update package-dist
# enter dist directory
/tmp/kestrel$ cd dist
/tmp/kestrel/dist/$
# copy kestrel folder to /opt/local/
/tmp/kestrel/dist/$ sudo mkdir /opt/local/kestrel
/tmp/kestrel/dist/$ sudo cp -r kestrel-1.2.9-SNAPSHOT /opt/local/kestrel
/tmp/kestrel/dist/$ cd /opt/local/kestrel
# link current version of kestrel to a 'current' link
/opt/local/kestrel$ sudo ln -s kestrel-1.2.9-SNAPSHOT current
# copy startup scripts
/opt/local/kestrel/current/$ sudo cp scripts/kestrel.sh /etc/init.d/kestrel
/opt/local/kestrel/current/$ cd /etc/init.d/
/etc/init.d/$ sudo chmod u+x kestrel
# edit line 21 to pidfile="/var/run/kestrel/$APP_NAME.pid"
/etc/init.d/$ sudo vim kestrel
# verify user permissions are set to user daemon
/etc/init.d/$ sudo chown -R daemon /var/spool/kestrel
/etc/init.d/$ sudo chown -R daemon /var/log/kestrel
# Link /usr/bin/java to /usr/java
/etc/init.d/$ sudo ln -s /usr/bin/java /bin/java
# check kestrel status
/etc/init.d/$ sudo ./kestrel status
kestrel is NOT running.
/etc/init.d/$ sudo ./kestrel start
Starting kestrel... done.
#connect to kestrel
/etc/init.d/$ telnet 127.0.0.1 22133
Trying 127.0.0.1... 
Connected to 127.0.0.1.
Escape character is '^]'. 
STATS 
STAT uptime 185 
STAT time 1295254423 
STAT version 1.2.9-SNAPSHOT 
STAT curr_items 0 
[...]
END

Voila :)

No comments:

Post a Comment