20

大家好,我正在尝试按照以下位置的说明进行操作: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

有谁知道这个错误来自哪里以及我将如何纠正它?

4

5 回答 5

33

显然,在 Ubuntu 12.04 上编译 JZMQ 比我意识到的要复杂一些。但是,我花时间写出我找到的解决方案。您可以在以下位置找到它:在 Ubuntu 12.04 上安装 Storm 的本机依赖项。为了时间的缘故,这里是说明:

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

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

  3. 运行以下命令安装零 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 - 安装本机依赖项和Tijun - 如何在 Mac OS X Lion 中构建 jzmq。谢谢大家把你的拼图拼起来,我刚刚把它们缝合在一起。

于 2012-08-28T13:53:17.053 回答
6

现在在我添加到我的冻结 jzmq 存储库的 zeromq/jzmq 存储库中对此进行了修复:https ://github.com/halfaleague/jzmq

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

于 2012-10-26T15:20:14.687 回答
4

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

sudo apt-get install libzmq0 libzmq-dev zeromq-bin
于 2012-08-24T19:02:39.593 回答
4

你需要classdist_noinst.stampclassnoinst.stampin替换jzmq/src/**Makefile.am**

于 2013-01-03T21:38:56.683 回答
0

对于 Ubuntu 13.04 (Raring),我需要在 ./autogen.sh 步骤之前运行以下命令:

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

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

于 2014-03-10T18:16:08.533 回答