Я надеюсь, что функциональность CurveCP будет работать в ZeroMQ ØMQ. Я использую CentOS в качестве базовой ОС.
После загрузки и запуска ZeroMQ я сделал обычные ./configure
, make
и sudo make install
. Затем запуск make check
вернул много тестовых проходов, но заявил:
libsodium not installed, skipping CURVE test
Итак, sudo yum install libsodium
и sudo ldconfig
, затем make clean
и приведенные выше команды. Но в следующий раз, когда я запускаю make check
, тест CURVE пропускается, снова сообщая об отсутствии libsodium.
Глядя на тесты, я вижу, что test_security_curve.cpp
имеет #ifndef HAVE_LIBSODIUM
, и это определение препроцессора, по-видимому, приводит к пропуску «без libsodium».
./configure --with-libsodium
согласно отчету этой страницы libsodium is not installed
./configure --with-libsodium=/home/eng/work/libsodium-master --with-libsodium-include-dir=/home/eng/work/libsodium-master/src/libsodium/include --with-libsodium-lib-dir=/usr/lib64
сообщает libsodium is not installed
.
Решение
Чтобы это заработало, установка libsodium через YUM не дала версию libsodium, пригодную для сборки zeromq. Требовалась настоящая сборка libsodium, для которой, в свою очередь, требовалась свежая копия autoconf.
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
tar xzf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure --prefix=/usr/local
make
sudo make install
sudo ldconfig
cd ../libsodium-master
./autogen.sh
./configure
make
sudo make install
cd ../libzmq-master
sudo ./configure --with-libsodium=/home/eng/work/libsodium-master --with-libsodium-include-dir=/home/eng/work/libsodium-master/src/libsodium/include --with-libsodium-lib-dir=/usr/lib64
sudo make
make check
sudo make install