我希望在 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