ubuntu 16.04安装pypbc库

PBC是密码学中计算双线性对的C库,对于双线性对运算具有很大的帮助,在python中同样在有着双线性对运算的库,名为pypbc,该库具有很多依赖项,安装前需要按照顺序依次安装,本文从一台新安装的ubuntu 16.04虚拟机开始,接下来演示python3pypbc的安装过程,按照步骤百分百成功安装。
pypbc的使用请参照pypbc双线性对库的使用


环境:
主机:Ubuntu 16.04 LTS
安装:pypbc库
工具:python3

一、依赖项安装

1、安装工具

开始前先安装要用到的工具

1) pip3(网速不好的话大概四分钟左右)
sudo apt-get install python3-pip
2) vim
sudo apt-get install vim
3) c++编译器
sudo apt-get install -y gcc c++
4)git工具
sudo apt-get install git
5)lzip解压缩工具

下载lzip源码并解压,进入解压后形成的目录

wget http://download.savannah.gnu.org/releases/lzip/lzip->1.22-pre1.tar.gz

tar -zxvf lzip-1.22-pre1.tar.gz
cd lzip-1.22-pre1

预编译、编译和安装

/configure --prefix=/usr/local/lzip

make
make install

注意:
make install时出现如下情况可不予理会

if [ ! -d "/usr/local/lzip/bin" ] ; then install -d -m 755 >"/usr/local/lzip/bin" ; fi
install: cannot create directory ‘/usr/local/lzip’: Permission >denied
Makefile:87: recipe for target 'install-bin' failed
make: *** [install-bin] Error 1

环境配置

vim ~/.bashrc

在文件的最后输入:
PATH=$PATH:/usr/local/lzip/bin
保存并退出,
使环境变量生效:

source ~/.bashrc

2、依赖项安装

1) 底层依赖项

Pypbc基于于GMP和PBC两个库,其中GMP又依赖于M4,bison,flex。

因此我们需要将依赖库根据依赖关系一一配置好。

sudo apt-get install update
sudo apt-get install M4
sudo apt-get install flex
sudo apt-get install bison

注意:
若安装updateM4是出现以下情况表示已存在,不予理会

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package M4
2)安装GMP

直接到到官网下载GMP 对应版本,或者使用如下命令下载GMP包

wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz

转到下载目录执行如下命令安装gmp-6.1.2(make时间较长)

lzip -d gmp-6.1.2.tar.lz
tar -xvf gmp-6.1.2.tar
cd gmp-6.1.2

./configure
make
make check
sudo make install
3)安装PBC

直接到官网下载PBC相应版本,或者使用命令下载

wget --no-check-certificate https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz

然后转到下载目录执行如下命令安装pbc-0.5.14(make时间较长)

tar -xvf pbc-0.5.14.tar.gz
cd pbc-0.5.14

./configure
make
sudo make install
4) 安装PYPBC

从Github直接下载或使用如下命令克隆pypbc源码

git clone git://github.com/debatem1/pypbc

转到下载目录,执行下列命令

cd pypbc

sudo python3 setup.py install
sudo pip3 install pypbc

pypbc已经安装成功,且pip list中已经出现pypbc

******@ubuntu:~/lzip-1.22-pre1/gmp-6.1.2/pbc-0.5.14/pypbc$ pip3 list
apturl (0.5.2)
beautifulsoup4 (4.4.1)
......
pypbc (0.2)
......

3、问题解决

pypbc安装成功后,在python中使用时却出现错位

>>> import pypbc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libpbc.so.1: cannot open shared object file: No such file or directory

原因:

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误,原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib .so. 文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可。另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件。

解决方法

1)在ld.so.conf中进行修改

在 /etc/ld.so.conf.d 目录下新建了一个conf文件 libpbc_x64.conf,内容为libpbc.so.1所在路径:

cd  /etc/ld.so.conf.d 

sudo touch libpbc_x64.conf
echo /usr/local/lib > libpbc_x64.conf
(若指令写不进去,使用vim打开文件,把/usr/local/lib写进去保存并关闭即可)
(要使用sudo vim打开)

(上述路径也可以直接写在ld.so.conf中)

然后要更新cache:

sudo ldconfig

问题解决

在这里插入图片描述

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值