Подтвердить что ты не робот

Компиляция 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

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

4b9b3361

Ответ 1

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

  • Вам нужно убедиться, что сначала установлены несколько пакетов: build-essential, uuid-dev, libtool, git, autoconf, openjdk-6-jdk
  • Создайте переменную JAVA_HOME, которая указывает только что установленный jdk. Должно быть в каталоге /usr/lib/jvm

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

  • Выполните следующие команды для установки 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
    
  • Загрузите JZMQ и перейдите в каталог src

    git clone https://github.com/nathanmarz/jzmq.git
    cd jzmq
    cd src
    
  • Как только в каталоге 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. Спасибо, парни за то, что вы положили свои кусочки головоломки, я просто сшил их вместе.

Ответ 2

В zoromq/jzmq repo есть исправление, которое я добавил в мое замороженное jzmq repo: https://github.com/halfaleague/jzmq

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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