记录一下我这个计算机小白第一次复现github上的代码遇到的种种坑,如果有人需要和我复现一样的东西的话,那么久可以凭借我的过程少走很多弯路,本人第一次复现,也很傻,哪里比较麻烦护或者笨请多见谅,在哪里用了什么方法解决了什么问题我都会记录一下的。
首先本次我们是学校临近期末给的一个综合测试。。。。要做的是《Mainzelliste SecureEpiLinker (MainSEL): privacy-preserving record linkage using secure multi-party computation》的复现,然后github代码是:medicalinformatics/SecureEpilinker: Mainzelliste SecureEpiLinker (MainSEL): Privacy-Preserving Record Linkage using Secure Multi-Party Computation. ABY sMPC Node. (github.com)第一次我是使用的Windows尝试复现的,可是我做着做着发现需要gmp库,而当我把gmp库下载下来之后,我就不知道怎么安装了,再加上查到ABY安全框架本身就是在linux下开发的,于是我就转战linux使用Ubuntu系统进行复现(真的很不喜欢使用linux系统因为不熟悉,处于是每一步都要看教程的阶段)
1、
git clone https://github.com/medicalinformatics/SecureEpilinker.git
第一步,我们先将代码git clone下来,这里我在clone的时候,发现速度非常慢,于是查怎么能快一点,之前在windows上我是第一天,第二题换了一个网自动就好了。。然后这里我也尝试了很多的方法,包括在/etc/host文件里加上git.hub的IP地址这样,但是我发现其实见效不大(其实没有任何改变)于是我采用了码云的方法,最后很快速的下载了下来。
具体方法就是我们先创建一个码云账号,然后在码云账号上把我们所需要在github上下载的库复制到我们自己的库里,git clone的时候直接后面加我们自己库的地址就可以了,这样的速度非常快,特别好用,于是我们就完成了第一步,下载库。
2、
git
cmake (>= 3.10)
c++ 17 compatible compiler (gcc >= 8, Ubuntu: g++-8)
boost development headers (for restbed) (Ubuntu: libboost-dev)
libcurl (Ubuntu: libcurl4-openssl-dev)
openssl (Ubuntu: libssl-dev)
gmp (Ubuntu: libgmp-dev)
第二步,我们开始配置我们的环境,我们所需要配置的环境如上面所示。
-对于git我使用的Ubuntu是自带的,所以不需要自行下载
-对于cmake,我们先到Download | CMake去下载camke文件,这里我们需要下载的文件格式应该是linux64位的,我下载的是:cmake-3.23.2-linux-x86_64.tar.gz,如果下载太慢,我们可以直接在CSDN上下载现成的(我是这样的),然后我是下载到了Windows里,直接复制粘贴就可以转到虚拟机里了,下载之后我们将cmake-3.23.2-linux-x86_64.tar.gz这个文件解压。然后运行
sudo mv cmake-3.23.2-linux-x86_64 /opt/cmake-3.20.0
sudo ln -sf /opt/cmake-3.23.2/bin/* /usr/bin/
就可以了,这里要注意吧cmake后面的版本名改成自己的。我本来是用的别的方法,但是我发现安装不下来,中途出现了问题,后来我使用这两条命令就畅通无阻的走下来了(虽然我也不知道为什么),之后我们使用检查一下是否成功,这里再附一张我成功安装的图片。
cmake --version
-对于gcc安装其实我觉得还蛮容易的,直接运行下面的代码就行了
sudo apt update
sudo apt install build-essential
这两条命令可以为我们安装很多需要的东西,gcc就在里面,然后我们可以使用gcc -version就可以查看是否安装成功了
-对于libboost-dev我是下载了一个压缩包boost_1_80_0.tar.gz,这个大家也很容易就可以搜的到,解压后我们在boost_1_80_0这个文件夹中打开我的们的命令行,分别运行
sudo ./bootstrap.sh
sudo ./b2 install
就可以安装完成了,但是这里在运行到第二行命令的时候我总是卡死,最后出现killed的命令,那就是进程被中断了,我上网查了一下,是给的内存太小了,在这里我之前给的是2GB的内存总是被卡死,然后我把内存加大一倍给了4GB的内存之后就可以正常安装了~
-对于libcurl4-openssl-dev、libssl-dev、libgmp-dev的安装我就直接使用命令行了,这里用libssl-dev举个例子,名字换一下就可以
sudo apt-get install libssl-dev
这也我就把环境配完了(应该吧,反正下载的时候没出错,之后我也没进行下一步验证,如果后面出错了我再回来改)
3、
cd SecureEpilinker
scripts/init_submodules.sh
我们继续按照代码给的README进行操作(对于第一次配环境运行项目的我我连readme都不懂,后来才知道是要在命令行或者gitbash里运行那个代码,再次认识到自己知识浅薄)
第一行cd SecureEpilinker是没有什么问题的,第二行scripts/init_submodules.sh再运行的时候我总是出现两种错误,第一种就是unable to access github443端口无法访问(我真的怀疑我自己用的网络有问题),然后我查了一下,说是需要到/etc/host文件里把githubIP地址屏蔽掉,因为我之前确实也弄了那个,所以我去屏蔽了,就是在最前面加一个#注释掉,在这之后,我又运行了一遍命令,有所改变但是不多,报错是不会报错了,但是就直接卡在了cloning into...不动,等了N久也不动。
之后我自己挂VPN尝试了一下,也不动,我真的怀疑是我网络的问题,于是我去网上搜搜索第三个方法,那就是输入
git config --global url."https://ghproxy.com/https://github.com".insteadOf "https://github.com"
原理应该是换一个源吧,我之前在Windows上也尝试过换源解决git clone过慢,但是失败了,我这次又试了一次,居然成功了,速度非常快很顺利的安装好了。
复现的第一步先到这里,往后我再继续进行,目前出的问题都平安解决了,希望后面出问题和前面就没有关系了。。。。
参考的文章地址贴一下,我就是借着这些文章一步一步解决问题的,感谢:
(25条消息) Ubuntu安装CMake_喵先生!的博客-CSDN博客_ubuntu安装cmake
如何在 Ubuntu 20.04 上安装 GCC(build-essential)-阿里云开发者社区 (aliyun.com)
(25条消息) Ubuntu20.04安装boost库_吃瓜太狼的博客-CSDN博客_ubuntu20.04 boost
(25条消息) ubuntu 安装 libcurl_hxker的博客-CSDN博客
(25条消息) github.com的443端口无法访问的问题_晓之木初的博客-CSDN博客_github.com:443