IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 安装HElib并运行示例程序 -> 正文阅读

[系统运维]安装HElib并运行示例程序

1. HElib简介

HElib是一个基于C++语言的同态加密开源软件库,底层依赖于NTL数论运算库和GMP多精度运算库实现,下载地址在:github HElib

2. HElib安装的前期准备

HElib可以在Ubuntu、CentOS、Fedora和macOS上安装,本篇博客以 CentOS 为例。安装HElib的方法有两种,其中博客:Hang Shao HElib 详细讲解了HElib的第二种安装方法,本篇博客就不重复啰嗦,我们来讲讲 第一种 安装方法,也是较为简单的一种。

第一种安装方法不需要自己配置安装:NTL(https://libntl.org/)GMP(https://gmplib.org/) 两个库,相对轻松一些。

HElib在CentOS上安装所需要的环境:

git >= 2.27
GNU make >= 4.2
g++ >= 9.3.0 (建议使用 g++ 10.3.0)
cmake >= 3.16
m4 >= 1.4.16
patchelf >= 0.9

2.1. git 安装/升级

首先使用命令查看当前的git版本:

git --version

若版本小于2.27,则升级:

yum install git

2.2. GNU make 安装/升级

首先使用命令查看当前的make 版本:

make -v

若版本小于4.2,则升级:

yum install make

2.3. g++ 安装/升级

g++的安装和升级与其他库不同,由于系统中不同的软件可能需要不同的g++版本,所以不能直接覆盖安装g++。

这里,我们使用devtoolset来对g++的版本进行控制:

  1. 更新yum:yum update
  2. 安装centos-release-scl:yum install centos-release-scl
  3. 安装devtoolset:yum install devtoolset-10-gcc*(若要安装其他版本的gcc/g++,可以把10换成其他版本号);
  4. 将g++10加入scl进行控制:scl enable devtoolset-10 bash(要使用scl来控制其他版本的gcc/g++,只需要把10换成对应版本号即可);
  5. 激活g++10环境:source /opt/rh/devtoolset-10/enable(要激活其他版本的gcc/g++,只需要把10换成对应版本号即可);
  6. 查看g++版本:gcc -v

2.4. cmake 安装/升级

首先使用命令查看当前的cmake 版本:

cmake -version

若版本小于3.16,则升级(直接升级):

yum install cmake

如果直接升级的方法不成功,那就只好编译安装了:

  1. 在官网:https://cmake.org/files/ 选择版本大于3.16的cmake并复制链接,例如我们选择:cmake-3.22.2.tar.gz
  2. 下载cmake:wget https://cmake.org/files/v3.22/cmake-3.22.2.tar.gz
  3. 解压缩cmake:tar zxvf cmake-3.22.2.tar.gz,然后打开目录:cd cmake-3.22.2
  4. 删除低版本的cmake:yum remove cmake -y
  5. 编译cmake:./configure --prefix=/usr/local/cmake
  6. 安装cmake:make && make install
  7. 创建软连接:ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
  8. 修改环境变量:vim /etc/profile,在文件末尾加入两行(注意检查是否之前已存在):export CMAKE_HOME=/usr/local/cmakeexport PATH=$PATH:$CMAKE_HOME/bin
  9. 刷新配置文件:source /etc/profile

2.5. m4和patchelf 安装/升级

直接安装即可:

yum install m4
yum install patchelf

3. HElib的下载和安装

(1) 上面已经说过,HElib的主页在:https://github.com/homenc/HElib,那么我们直接git下来就好了:

git clone https://github.com/homenc/HElib

(2) 然后在HElib目录内创建一个build目录,用于构建项目:

cd HElib
mkdir build
cd build

(3) 在build目录内构建项目:

cmake -DPACKAGE_BUILD=ON -DENABLE_TEST=ON ..

这里有必要说一下,HElib的作者在cmake时提供了-DCMAKE_INSTALL_PREFIX选择用于改变项目构建的路径,但是如果你已经有root权限了,就不需要这个步骤了。如果你没有root权限,那就要改成:

cmake -DPACKAGE_BUILD=ON -DENABLE_TEST=ON -DCMAKE_INSTALL_PREFIX=/home/alice/helib_install ..

其中,/home/alice/helib_install是一个自定义的路径,你想把HElib安装在哪里,就把这个路径改成那里的路径。

(4) 编译
cmake结束后,就进行编译:

make -j16

这里的16是指启用16个线程进行编译,可以改多,不建议改得太少,否则这个步骤会进行地很慢。
(5) 进行测试,这个步骤可以省略:

ctest

说一下,这个命令只有在cmake步骤时设置了-DENABLE_TEST=ON时有用,否则是执行不了的。
(6) 安装HElib

make install

如果在cmake时没有设置-DCMAKE_INSTALL_PREFIX,那么HElib默认安装在/usr/local/helib_pack下。

我们打开这个目录:

cd /usr/local/helib_pack

目录中有4个子目录:include、lib、lib64和share

drwxr-xr-x. 4 root root  43 Jan 28 05:34 include
lrwxrwxrwx. 1 root root   5 Jan 28 05:34 lib -> lib64
drwxr-xr-x. 3 root root 184 Jan 28 05:42 lib64
drwxr-xr-x. 5 root root  42 Jan 28 05:34 share

分别把它们复制到/usr/local的对应位置:

cp -r ./include/* /usr/local/include/
cp -r ./lib/lib* /usr/local/lib/
cp -r ./lib/pkgconfig/* /usr/local/lib/pkgconfig/
cp -r ./lib64/lib* /usr/local/lib64/
cp -r ./lib64/pkgconfig/* /usr/local/lib64/pkgconfig/
cp -r ./share/cmake/ /usr/local/share/
cp -r ./share/doc/* /usr/local/share/doc/
cp -r ./share/info/* /usr/local/share/info/

(7) 更新lib文件

ldconfig

如果共享库文件安装到了/lib/usr/lib目录下,那么需执行一下ldconfig命令。

ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,
搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。

到此为止,HElib就安装好啦。

4. 运行HElib示例程序

让我们回到之前git clone下来的HElib目录,里面有个examples子目录,进入它:

cd ./examples

和上面的步骤一样,我们需要创建一个build目录,用于构建项目:

mkdir build
cd build

由于我们已经把HElib安装到/usr/local/下了,所以可以直接进行cmake:

cmake -Dhelib_DIR=/usr/local/share/cmake/helib/ ..

然后make:

make -j16

完成后,在build目录内会生成一个bin目录,打开它:

cd ./bin

运行其中一个示例程序试试看:

cp ../../BGV_country_db_lookup/countries_dataset.csv ./
./BGV_country_db_lookup

注意,cp ../../BGV_country_db_lookup/countries_dataset.csv ./是BGV_country_db_lookup特有的命令,因为这是一个查找程序,而供其查找的数据表就是countries_dataset.csv,所以需要复制过来。

执行了./BGV_country_db_lookup之后,出现如下界面:

在这里插入图片描述
输入一个国家名字,例如China,然后按回车:

在这里插入图片描述
啥也没查着,没有China的数据,不过这个示例程序依然运行成功了。完成。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:28:17  更:2022-01-29 23:29:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:32:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码