[zeromq-dev] Quick JZMQ howto on Fedora

Steven McCoy steven.mccoy at miru.hk
Thu Oct 13 23:09:58 CEST 2011


What a mess, the JDK broken because it doesn't check /usr/local/lib for
libraries and it bypasses ld.so.conf settings.

Required packages:

   - autoconf
   - automake
   - libtool
   - gcc
   - gcc-g++
   - make
   - libuuid-dev
   - git
   - java-1.6.0-openjdk-devel


1)  Download and unpack ZeroMQ 2.1.10.

$ *wget http://download.zeromq.org/zeromq-2.1.10.tar.gz*
$ *tar zxf zeromq-2.1.10.tar.gz*

2)  Build

$ *cd zeromq-2.1.10*
$ *./configure --with-pgm*
$ *make*
$ *sudo make install*

Now libzmq.so should reside in /usr/local/lib

3)  Clone JZMQ from GitHub.

$ *git clone https://github.com/zeromq/jzmq.git*

4)  Build

$ *cd jzmq*
$ *./autogen.sh*
$ *./configure*
$ *make*
$ *sudo make install*

5)  Setup environment

$ *sudo bash*

*optional step #1 (not required on Debian platforms)*

> # *echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
> *# *ldconfig*


*optional step #2*
>
> # *echo CLASSPATH=/usr/local/share/java/zmq.jar:. >> /etc/environment*
> Incredibly limiting as you will still need to override to include any other
> directory or JAR file.


*optional step #3*

> # *echo export LD_LIBRARY_PATH=/usr/local/lib >
> /etc/profile.d/ldlibrarypath.sh*
> This is pretty much a workaround to a JRE defect:
> http://lists.fedoraproject.org/pipermail/java-devel/2011-March/004153.html


# *exit*

Then log out and log back in again.

6)  Verify new environment

$ *echo $CLASSPATH*
/usr/local/share/java/zmq.jar:.
$ *echo $LD_LIBRARY_PATH*
/usr/local/lib

7)  Test with Java ØMQ performance examples

$ *cd jzmq/perf*
$ *java local_lat tcp://127.0.0.1:5000 1 100*

This will fail if zmq.jar cannot be found in the class path.
This will fail if libjzmq.so or libzmq.so cannot be found in
java.library.path or LD_LIBRARY_PATH.

If you skip optional step #1 you will need to specify the library path:

$ *LD_LIBRARY_PATH=/usr/local/lib java local_lat tcp://127.0.0.1:5000 1 100*
*
*
If you skip optional step #2 you will need to specify the class path:

$ *java -cp /usr/local/share/java/zmq.jar:. local_lat tcp://127.0.0.1:5000 1
100*
*
*
Note that setting -Djava.library.path is insufficient for libjzmq.so to find
libzmq.so but it is sufficient if you take optional step #1 and skip
optional step #3, i.e. LD_LIBRARY_PATH is not overridden but ld.so.conf is
updated.

$ j*ava -Djava.library.path=/usr/local/lib local_lat tcp://127.0.0.1:5000 1
100*
*
*

-- 
Steve-o
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20111013/11a95e98/attachment.htm>


More information about the zeromq-dev mailing list