Ubuntu22.04LTS 下Python3.7.9+Charm-Crypto+pypbc+Jupyter环境搭建
参考文献
Linux安装Charm-crypto环境详细流程_android使用charm-crypto-CSDN博客
1 前置工具
- 为了方便本地操作,先安装openssh-server和net-tools
1sudo apt install openssh-server net-tools -y
- 连接到本地xshell以后,再进行如下安装
1sudo apt install gcc g++ make vim vsftpd wget m4 flex bison python3-setuptools python3-dev python3-pip -y
安装python编译依赖
1sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
- 配置vsftpd
1sudo vim /etc/vsftpd.conf
- 配置pip源
1cd
2sudo mkdir .pip
3cd .pip
4sudo touch pip.conf
5sudo vim pip.conf
粘贴以下内容到pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
安装git
安装git
1sudo apt install git
git配置
1git config --global user.name 名字
2git config --global user.email 邮箱
cd到家目录下的Downloads目录下,下载所有源码包
1sudo wget https://gmplib.org/download/gmp/gmp-5.1.3.tar.bz2
2sudo wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
3sudo wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
4
5# charm和pypbc获取
6# 可以从github导入到gitee加快下载速度
7git clone https://gitee.com/liihoo/charm.git
8git clone https://gitee.com/liihoo/pypbc.git
安装GMP
1sudo tar -jxvf gmp-5.1.3.tar.bz2
2cd gmp-5.1.3/
3sudo ./configure
4sudo make
5sudo make install
安装PBC
安装PBC
1sudo tar -zxvf pbc-0.5.14.tar.gz
2cd pbc-0.5.14/
3sudo ./configure
4sudo make
5sudo make install
添加libpbc到系统链接库
1sudo vim /etc/ld.so.conf
写入以下内容
1/usr/local/lib
更新动态库
1sudo ldconfig
安装Python3.7.9
新建一个文件用于安装目录,比如/opt/python3/python3.7.9
1sudo tar -zxvf Python-3.7.9.tgz
2sudo ./configure --prefix=/opt/python3/python3.7.9
3sudo make
4sudo make install
创建Python3.7.9的软连接。不要覆盖系统默认的版本
1sudo ln -s /opt/python3/python3.7.9/bin/pip3 /usr/bin/pip3.7
2sudo ln -s /opt/python3/python3.7.9/bin/python3.7 /usr/bin/python3.7
3pip3.7 install pyparsing==2.2.1
安装Jupyter
1pip3.7 install jupyter notebook
打开家目录下的.bashrc添加jupyter路径
vim .bashrc
更新配置
1source .bashrc
生成配置文件
1jupyter notebook --generate-config
使用python中的passwd()创建密码,终端输入ipython打开ipython并输入,复制打印的密码
1In [1]: from notebook.auth import passwd
2In [2]: passwd()
打开配置文件
1vim ~/.jupyter/jupyter_notebook_config.py
在文件末尾添加:
1c.NotebookApp.allow_remote_access = True #允许远程连接
2c.NotebookApp.ip='*' # 设置所有ip皆可访问
3c.NotebookApp.open_browser = False # 禁止自动打开浏览器
4c.NotebookApp.port =8888 #任意指定一个端口
5c.NotebookApp.password = u'sha:..' #之前复制的密码
安装charm-crypto
打开charm-crypto的GitHub地址,下载源码的压缩包 网络原因,需要想办法,最后打开xftp上传到Ubuntu
1sudo unzip charm-dev.zip
打开configure.sh修改python配置文件位置指向python3.7.9的位置,如下
1cd charm
2sudo ./configure.sh --python=/opt/python3/python3.7.9/bin/python3.7
3sudo make
4sudo make install
安装pypbc
打开pypbc.c文件,将第1338行注释掉,否则无法进行$Zr$上的除法运算
1cd pypbc
2sudo python3.7 setup.py install
3sudo pip3.7 install pypbc
后续
删除所有自己安装的gmp库
1sudo rm -rf /usr/local/lib/libgmp*
更新动态库
1sudo ldconfig
常用的python库安装
1pip3.7 install numpy scipy pandas matplotlib pycryptodome