Компиляция 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. Ради времени вот инструкции:
- Сначала вам нужно убедиться, что установлено несколько пакетов: 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. Спасибо, ребята, за то, что выложили ваши кусочки головоломки, я просто собрал их вместе.
Теперь это можно исправить в репозитории 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