Компиляция JZMQ в Ubuntu

Привет всем, я пытаюсь следовать указаниям, расположенным по адресу: https://github.com/nathanmarz/storm/wiki/Installing-native-dependencies для установки Zero MQ в качестве зависимости для Storm на компьютере с Ubuntu 12.04. Однако при попытке запустить команду 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

У кого-нибудь есть идеи, откуда эта ошибка и как я смогу ее исправить?

5 ответов

Решение

Очевидно, компиляция JZMQ в Ubuntu 12.04 немного сложнее, чем я думал. Однако я нашел время написать решение, которое нашел. Вы можете найти его по адресу: Установка собственных зависимостей Storm в Ubuntu 12.04. Ради времени вот инструкции:

  1. Сначала вам нужно убедиться, что установлено несколько пакетов: build-essential, 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 - Установка родных зависимостей и Tijun - Как собрать jzmq в Mac OS X Lion. Спасибо, ребята, за то, что выложили ваши кусочки головоломки, я просто собрал их вместе.

Теперь это можно исправить в репозитории zeromq/jzmq, который я добавил к своему замороженному репозиторию jzmq: https://github.com/halfaleague/jzmq

Теперь вы можете просто следовать указаниям (./autogen.sh, ./configure, make, make install).

Вам нужно заменить classdist_noinst.stamp с classnoinst.stamp в jzmq/src/**Makefile.am**

Почему бы просто не использовать менеджер пакетов для его установки?

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

Для 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

Другие вопросы по тегам