第零步 VMware虚拟机设置和安装Anaconda虚拟环境
因为后面要编译源码,所以最好把CPU设置为最大,例如我的电脑是4核8线程,则:
关于Anaconda虚拟环境,这里不再赘述,后面都假设已经安装好虚拟环境,Python版本为3.7,名称叫 baobao。
Python版本为3.7很重要!建议就使用这个,因为有人用Python3.8,最后有问题。
第一步 Ubuntu换源
先备份一下:
cd /etc/apt
sudo cp sources.list /etc/apt/sources_copy.list
换源:
1. 利用vim编辑文件:
sudo vim sources.list #加上sudo,不然可能无法写入
注:如果没有vim,那么用vi即可(不想用gedit,是因为打开比较慢)
输入:
:%d
再按键盘上的字母 i, 把下面代码复制进去:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
按键盘上 ESC,输入:
:w!
按键盘上 Ctrl+D,退出。
更新:
sudo apt-get update
第二步 安装包/依赖
sudo apt-get install gcc make perl m4 flex bison python3-setuptools python3-dev libssl-dev libffi-dev python3-pip
接着:
pip3 install pyparsing==2.4.6
注:因为Ubuntu20.04自带了Openssl1.1.1,所以就不需要安装这个了:
第三步 修改系统默认Python——使用update-alternatives工具
首先需要创建管理:
sudo update-alternatives --install /usr/bin/python python /home/wind/anaconda3/envs/baobao/bin/python3.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
你需要修改哪里?
0. 其实只需要第一行,第二行是为了后面解释一下update-alternatives是如何管理链接。
1. 下面框框里的东西,可以理解为一个控制台,这个控制台的名称叫做 python,你可以随便起名,叫做“狗”都行:
2. 修改下面两个框框的路径:
红框是你的虚拟环境的Python路径,如何获取呢?
在虚拟环境下,输入:which python3.7,就用这个路径:
蓝框是非虚拟环境下的python路径,重新打开一个终端,输入 conda deactivate,再输入which python3.8(系统默认的),就用这个路径:
注:路径最后面的 1 和 2 是优先级,你设置4 5 6都行,其实不重要,我们后面依然可以手动指定。
其次需要手动指定优先级:
sudo update-alternatives --config python # 最后python就是控制台的名字
看到如下:
只需要找到虚拟环境里的python3.7,然后看最前面的编号,例如上图是0和2,那么我只需要输入0或2,再按回车,那么update-alternatives工具就会自动帮你把虚拟环境里的python3.7设置为默认。这里很重要,因为后面编译 charm 的时候,必须保证 charm 依赖的版本是python3.7。
额外拓展:(和安装过程无关)
输入命令:
update-alternatives --display python
可以看到目前指向正确:
第四步 下载、编译和安装GMP、PBC
下载GMP:
Index of /download/gmp/
下载PBC:
PBC Library - Pairing-Based Cryptography - Downloads
然后把安装文件放到目录下,我这里放到:/home/wind/baobao/
解压编译安装GMP:
cd /home/wind/baobao/
sudo tar -jxvf gmp-5.1.3.tar.bz2
cd gmp-5.1.3/
sudo ./configure
sudo make -j8
sudo make install
注:使用 make -j参数是调用多线程编译,例如4核8线程,那就:make -j8
解压编译安装PBC:
# 先cd ..退回到 baobao 目录
sudo tar -zxvf pbc-0.5.14.tar.gz
cd pbc-0.5.14/
sudo ./configure
sudo make -j8
sudo make install
第五步 下载、编译和安装charm
下载charm:
GitHub下载源码:GitHub - JHUISI/charm: Charm: A Framework for Rapidly Prototyping Cryptosystems
把下载好的 charm-dev.zip 文件拷贝到 baobao目录下,然后:
编译、安装:
sudo unzip charm-dev.zip
cd charm-dev/
sudo ./configure.sh
sudo make -j8
sudo make install
成功后可以看到:
注:可能在intall的时候报错,解决办法,重新编译和安装即可:
第六步 跑个demo
vscode里选择解释器:
运行,可能发现有一个报错:
libpbc.so.1: cannot open shared object file: No such file or directory
解决办法:
cd /etc/ld.so.conf.d
sudo vi libpbc.conf
输入:
/usr/local/lib
保存,退出,最后:
sudo ldconfig
再次运行demo,成功:
本文献给我的美丽可爱温柔大方的610宝宝~ ❤