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?
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:
- You’ll need to ensure that a few packages are installed first: build-essential, uuid-dev, libtool, git, autoconf, openjdk-6-jdk
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
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
Download JZMQ and navigate to the the src directory
git clone https://github.com/nathanmarz/jzmq.git
cd jzmq
cd src
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.
There is a fix for this now in the zeromq/jzmq repo that I added to the my frozen jzmq repo: https://github.com/halfaleague/jzmq
Now, you can just follow the directions (./autogen.sh
, ./configure
, make
, make install
).
Why not just use the package manager to install it?
sudo apt-get install libzmq0 libzmq-dev zeromq-bin
You need to replace classdist_noinst.stamp
with classnoinst.stamp
in jzmq/src/**Makefile.am**
For Ubuntu 13.04 (Raring), I needed to run the following before the ./autogen.sh step:
sed -i 's/classdist_noinst.stamp/classnoinst.stamp/g' src/Makefile.am
I found this workaround here, and I think that this thread could be useful to anyone with that kind of problems: https://github.com/zeromq/jzmq/issues/114