在Ubuntu上编译JZMQ



大家好,我正试图按照以下指示进行操作:https://github.com/nathanmarz/storm/wiki/Installing-native-dependencies用于在Ubuntu 12.04计算机上安装Zero MQ作为Storm的依赖项。然而,当尝试运行make命令时,我得到以下错误

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

有人知道这个错误是从哪里来的吗?我该如何纠正它?

显然,在Ubuntu 12.04上编译JZMQ比我意识到的要复杂一些。然而,我花时间写出了我找到的解决方案。您可以在以下网址找到它:在Ubuntu 12.04上安装Storm的Native Dependencies。为了时间起见,以下是说明:

  1. 您需要确保先安装几个软件包:build-ential、uuid-dev、libtool、git、autoconf、openjdk-6-jdk
  2. 创建一个JAVA_HOME变量,指向您刚刚安装的jdk。应该在/usr/lib/jvm目录中

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

  3. 运行以下命令安装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. 下载JZMQ并导航到src目录

    git clone https://github.com/nathanmarz/jzmq.git
    cd jzmq
    cd src
    
  5. 进入src目录后,运行touch命令创建一个文件,然后重新定义类路径。

    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.导航回/jzmq并运行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
    

这部分内容是从Storm-Installing Native Dependencies和Tijun-How to build jzmq in Mac OS X Lion中拼接而成的。谢谢你们把拼图拼在一起,我只是把它们缝合在一起。

在我添加到冻结的jzmq repo中的zeromq/jzmq repo中,现在有一个修复程序:https://github.com/halfaleague/jzmq

现在,您可以按照指示(./autogen.sh./configuremakemake install)进行操作。

为什么不直接使用包管理器来安装它?

sudo apt-get install libzmq0 libzmq-dev zeromq-bin

您需要在jzmq/src/**Makefile.am** 中将classdist_noinst.stamp替换为classnoinst.stamp

对于Ubuntu 13.04(Raring),我需要在/autogen.sh步骤:

sed-i的/classdist_noinst.stamp/classnoinst.stamp/g'src/Makefile.am

我在这里找到了这个解决方法,我认为这个线程对任何有这种问题的人都很有用:https://github.com/zeromq/jzmq/issues/114

相关内容

  • 没有找到相关文章

最新更新