ZeroMQ não identifica libsodium
Espero conseguir que a funcionalidade CurveCP funcione no ZeroMQ ØMQ. Estou usando o CentOS como sistema operacional subjacente.
Depois de baixar e executar o ZeroMQ, fiz o habitual./configure
, make
esudo make install
. Então correndomake check
retornou muitas passagens de teste, mas afirmou:
libsodium not installed, skipping CURVE test
assimsudo yum install libsodium
esudo ldconfig
, entãomake clean
e os comandos acima. Mas da próxima vez eu corri omake check
, o teste CURVE é ignorado, novamente relatando ausência de libsodium.
Olhando para os testes, eu vejotest_security_curve.cpp
tem#ifndef HAVE_LIBSODIUM
e essa definição de pré-processador parece estar gerando o salto 'no libsodium'.
./configure --with-libsodium
conformeesta página relatórioslibsodium 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
relatórioslibsodium is not installed
.
Solução
Para que isso funcione, a instalação da libsodium via YUM não forneceu uma versão viável da libsodium para uma compilação do zeromq. Ele precisava de uma compilação real de libsodium, que por sua vez exigia uma cópia recente do autoconf.
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
tar xzf autoconf-2.6,9.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