Compiling JZMQ on Ubuntu

Chris Maness picture Chris Maness · Aug 24, 2012 · Viewed 10.5k times · Source

Hello all I'm attempting to follow the directions located at: https://github.com/nathanmarz/storm/wiki/Installing-native-dependencies for installing Zero MQ as a dependency for Storm on a Ubuntu 12.04 machine. However when trying to run the make command I get the following error

Making all in src
make[1]: Entering directory `/home/localadmin/jzmq/src'
make[1]: *** No rule to make target `classdist_noinst.stamp', needed by `org/zeromq/ZMQ.class'.  Stop.
make[1]: Leaving directory `/home/localadmin/jzmq/src'
make: *** [all-recursive] Error 1

Does anyone have any idea where this error stems from and how I would be able to correct it?

Answer

Chris Maness picture Chris Maness · Aug 28, 2012

Apparently compiling JZMQ on Ubuntu 12.04 is a little bit more involved than I realized. However I took the time to write out the solution that I found. You can find it at: Installing Storm's Native Dependencies on Ubuntu 12.04. For time's sake here are the instructions:

  1. You’ll need to ensure that a few packages are installed first: build-essential, uuid-dev, libtool, git, autoconf, openjdk-6-jdk
  2. Create a JAVA_HOME variable that point the the jdk you just installed. Should be in the /usr/lib/jvm directory

    JAVA_HOME=/usr/lib/jvm/(your jdk folder); export JAVA_HOME

  3. Run the following commands for installing Zero MQ:

    wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
    tar -xzf zeromq-2.1.7.tar.gz
    cd zeromq-2.1.7
    ./configure
    make
    sudo make install
    
  4. Download JZMQ and navigate to the the src directory

    git clone https://github.com/nathanmarz/jzmq.git
    cd jzmq
    cd src
    
  5. Once in the src directory run the touch command to create a file and then redefine the classpath.

    touch classdist_noinst.stamp
    CLASSPATH=.:./.:$CLASSPATH javac -d . org/zeromq/ZMQ.java org/zeromq/ZMQException.java org/zeromq/ZMQQueue.java org/zeromq/ZMQForwarder.java org/zeromq/ZMQStreamer.java
    

    6.Navigate back to the /jzmq and run make

    cd ..
    ./autogen.sh 
    If you get this error "autogen.sh: error: could not find pkg-config.pkg-config is required to run autogen.sh", then install pkg-config. In Ubuntu sudo apt-get install pkg-config and again run the above command.
    ./configure
    make
    sudo make install
    

Parts of this were stitched together from the Storm - Installing Native Dependencies and Tijun - How to build jzmq in Mac OS X Lion. Thanks guys for putting your pieces of the puzzle up I just stitched them together.