我希望在 ZeroMQ ØMQ 中使用 CurveCP 功能。我使用 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。
解决方案
为了让它工作,通过 YUM 安装 libsodium 并没有提供一个可用于 zeromq 构建的 libsodium 版本。它需要真正构建的 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