CentOS7中安装MP-SPDZ


前言

       在CentOS中需要依赖库的名称以及版本与MP-SPDZ官网提供的版本不统一,这里记录一下。

版本信息:
       操作系统:CentOS 7
       MP-SPDZ: 0.2.9


一、依赖库汇总

yum install autoconf gcc gcc-c++ git libboost-dev libboost-thread-dev \
libgmp3-dev libntl-dev libsodium-dev libssl-dev libtool m4 make man \
python sudo texinfo valgrind vim yasm tar bzip2 wget openssl11-devel \
openssl11-static zlib-devel libsodium-devel boost169-devel gmp-devel \
rh-python35 libsodium-static boost169-static zlib-static openssl \
openssl-perl llvm-toolset-7

手动安装MPIR和NTL:

wget http://mpir.org/mpir-3.0.0.tar.bz2
tar -xjf mpir-3.0.0.tar.bz2
rm mpir-3.0.0.tar.bz2
cd mpir-3.0.0/
./configure --enable-cxx
make
make install
wget https://shoup.net/ntl/ntl-11.3.2.tar.gz
tar -xzf ntl-11.3.2.tar.gz
cd ntl-11.3.2/src
./configure NTL_THREADS=off NTL_GMP_LIP=off NATIVE=off 
scl enable devtoolset-7 "make -j8"
make -j8 install

安装后,下载MP-SPDZ压缩包,解压后。

cd MP-SPDZ
make -j 8 tldr

如果没有报错,那么恭喜你,编译成功。
但是大概率会出问题。

二、问题

1.GCC版本不对

Centos7中默认安装的gcc版本是4.8.5,但是MP-SPDZ需要的版本是5以上,所以需要升级,将环境中的gcc版本变更。
1、安装centos-release-scl

sudo yum install centos-release-scl

2、安装devtoolset,注意,如果想安装8.版本的,就改成devtoolset-8-gcc,以此类推

sudo yum install devtoolset-7-gcc*

3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本

scl enable devtoolset-7 bash

大功告成,查看一下gcc版本

gcc -v

4、直接替换旧的gcc

mv /usr/bin/gcc /usr/bin/gcc-4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc

mv /usr/bin/g++ /usr/bin/g+±4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

gcc --version

g++ --version

2. libsodium库有问题

在这里插入图片描述
安装 libsodium 1.0.18即可,步骤如下:

1、下载并解压

wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz
tar -zxf libsodium-1.0.18-stable.tar.gz  
cd libsodium-stable

2、编译安装

./configure --prefix=/usr  
make && make check  
sudo make install  
sudo ldconfig

3. libtool 的版本有问题

安装 libtool 2.4.6 可以解决
1、下载并解压

wget http://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz
tar -zxf libtool-2.4.6.tar.gz
cd libtool-2.4.6

2、编译安装

./configure --prefix=/usr
sudo make
sudo make install
sudo ldconfig

4. boost版本问题

1、使用安装包安装boost库,首先要下载安装包,可以到下面的链接找:
https://download.csdn.net/download/kaka__22/85201057

2、下载后解压

tar -zxvf boost-1.70.0.tar.gz

3、进入到解压目录

4、执行里面的脚本bootstrap.sh

./bootstrap.sh

5、有个可执行文件b2

./b2 install

如果不按这个命令编译可能会出现错误,这个要注意

5. 安装 libboost-dev找不到包

yum install boost-devel

6. 杂项

1、编译MP-SPDZ遇到的问题
在这里插入图片描述
应该是程序内部冲突的问题。运行一下命令可以解决

make clean

2、编译 .x协议遇到的问题
在这里插入图片描述

CentOS 7的系统编译器比较旧,使用以下命令完成

scl enable devtoolset-7 make ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大连米兰哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值