Ubuntu14.04安装JHUISI/charm(Python3环境)
在Ubuntu14.04下安装开源密码学库Charm(github主页),记录一下安装过程以及遇到的问题,主要参考github主页上ubuntu13.04的安装过程(https://github.com/JHUISI/charm/blob/dev/doc/source/install_source.rst)。
1、安装环境
操作系统:Ubuntu14.04LTS 64位
Python版本:Python3.4 (Ubuntu14.04自带有python2.7和python3.4,本文主要是在python3.4下安装)
2、安装依赖项
sudo apt-get install subversion
sudo apt-get install m4
sudo apt-get install python3
sudo apt-get install python3-setuptools python3-dev(for Python 3.x)
sudo apt-get install libssl-dev(ubuntu13.04安装教程中这一项针对python2,但实测python3中也需要这一步,不然后面charm configure.sh会显示libcrypto未找到)
sudo apt-get install libgmp-dev
3、进入charm-dev文件夹,运行:
sudo ./configure.sh
结果如下:
提示没有找到libpbc,选择从源码安装pbc库。
4、源码安装PBC密码库(PBC下载),进入pbc-0.5.14文件夹:
5、返回charm-dev文件夹,执行config后结果如下:sudo apt-get install flex bison
./configure LDFLAGS="-lgmp"
make
sudo make install
sudo ldconfig
说明pbc库已成功安装。接着执行:
sudo make
sudo make install
sudo ldconfig
sudo make test
最后执行make test一般会遇到如下两个错误:
(1)your setuptools is too old (<12)
解决办法:
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python3.4
(2)解决问题(1)后,再次执行make test,会出现six版本过低问题。
解决办法:
首先安装pip3:
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip
接着安装新版本six:
sudo pip install --ignore-installed six
问题(1)、(2)解决后,make test结果如下:
6、使用update-alternatives命令修改系统默认python环境。
(1)使用ls /usr/bin/python* -ll 查看结果如下:
(2)使用如下命令增加python 2.7和python 3.4的可选项(此处应根据自己系统中已有的python版本来进行操作):
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 40
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 30
(3)使用如下命令切换版本到python3.4
sudo update-alternatives --config python
显示如下,输入2即是自己需求的python 3.4版本:
查看当前python版本如下,表明已修改成功。如果想改回python2,重复步骤(3),选择1即可。
7、选择代码测试,例如执行~/charm-dev/charm/schemes/abenc/abecn_bsw07.py文件,结果如下:
至此,安装过程结束。
后记:刚开始选择用pyenv管理python版本(参考:http://seisman.info/python-pyenv.html),安装完编译至make test都没有问题,但是运行~/charm-dev/charm/schemes/abenc/abecn_bsw07.py代码就会出现Import error,问题尚未解决。