VeraCrypt版本
在进行这次编译工作的时候使用的是https://github.com/veracrypt/VeraCrypt/releases 链接下1.25.9版本的源码,前置软件要求与VeraCrypt官方说明一致,无额外需求,安装流程与可能会遇到的问题会在下文中给出。
1.GNU Make
2.GNU C++ Compiler 4.0 or compatible
3.YASM 1.3.0 or newer (Linux only, x86/x64 architecture only)
4.pkg-config
5.wxWidgets 3.0 shared library and header files installed or wxWidgets 3.0 library source code
6.FUSE library and header files
1. GNU Make的安装
Centos系统自带有GUN Make,使用命令查看版本为3.82
make -v
2. GNU C++的安装
同上,centos系统自带有GNU C++,无需额外安装,使用命令查看版本为4.8.5
gcc -v
接着再安装g++编译器
yum install gcc-c++
3.YASM的安装
Veracrypt要求使用1.3.0及以上版本的yasm,这里使用的就是1.3.0版本
输入代码下载源码
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
解压
tar zxvf yasm-1.3.0.tar.gz
进入文件夹
cd yasm-1.3.0
配置
./configure
编译并安装
make && make install
结束后输入命令查看是否安装成功,安装成功会显示版本信息
yasm --version
此处需要注意,安装yasm是需要提供sudoer用户权限,如果权限不够的话会在make && make install这一步出现问题安装失败。
4.pkg-config的安装
Centos7系统中已经有pkg-config安装,使用命令查看版本
pkg-config --version
4. wxWidgets 3.0的安装
在安装前建议先更新一下系统,否则有可能会出现前置依赖包缺失或版本不对等错误
yum update
更新完成后下载源码准备安装,veracrypt要求3.0及以上,这里我们使用最新的3.1.5的版本
Wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.5/wxWidgets-3.1.5.tar.bz2
创建wxWidgets的安装文件路径
mkdir -p /usr/local/wxWidgets
解压wxWidgets
tar -xvf wxWidgets-3.1.5.tar.bz2
进入解压后的wxWidgets-3.1.5目录,在安装之前先安装前置依赖gtk2-devel与binutils-devel,否则会有下面的报错信息
yum -y install gtk2-devel binutils-devel
安装好前置依赖之后就可以开始配置并编译安装wxWidgets
./configure --with-regex=builtin --with-gtk --enable-unicode --disable-shared --prefix=/usr/local/wxWidgets
在进行配置命令之后会出现下面的信息,不用管,并没有错误,有错误会有错误信息的
配置完成之后在进行编译安装,编译安装的过程比较长,需要耐心的等待文件编译完成,有错误会出现异常信息的,不用担心。
make && make install
接着设置动态库
cd /etc/ld.so.conf.d/
创建并打开文件
touch wxWidgets.conf
vim wxWidgets.conf
增加下面的内容
/usr/local/lib
重新加载动态库配置信息
ldconfig
配置wxWidgets环境变量
vim /etc/profile
将下面的内容存储到刚才打开的文件中,保存并退出
export WXPATH=/usr/local/wxWidgets/
export PATH=$WXPATH/bin:$PATH
刷新使其生效
source /etc/profile
查看版本号,看是否安装成功
wx-config --version
6.FUSE的安装
因为centos7系统自带的fuse和一些前置文件在后续的编译安装中会出现找不到头文件等错误,并且这些问题在后续编译安装veracrypt的时候不太好修复,建议直接卸载centos自带的文件后再重新安装。
先卸载
yum --setopt=tsflags=noscripts remove fuse.x86_64
再安装前置依赖
yum install automake gcc-c++ libcurl-devel libxml2-devel make openssl-devel
下载源码文件,这里我们使用的是2.9.9版本,目前最新的是3.10.5,但建议不要使用最新版本,最新版本可能是由于改动较大,如果使用3.10.5版本可能会出现未知错误,不知道这个改动是从哪个版本开始,但使用2.9.9版本并没有问题,所以这里使用的是2.9.9的源码文件进行编译安装
wget https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/fuse-2.9.9.tar.gz
解压缩后进入该文件夹
tar -zxvf fuse-2.9.9.tar.gz
cd fuse-2.9.9
运行配置文件后直接编译安装
./configure
make && make install
成功运行配置文件后会出现以下信息,这个不用管
打开配置文件。配置环境变量
vim /etc/profile
添加以下内容,并刷新
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
source /etc/profile
查看版本
pkg-config --modversion fuse
7.VeraCrypt的安装
解压文件夹后进入src文件夹下进行的操作,在前面的操作都完成之后直接输入make进行编译。
如果前面都按照流程走的话应该是直接一步成功,直接到/src/Main/路径下启动veracrypt即可。
8.可能出现的错误
如果在编译过程中出现找不到”fuse.pc”或者”fuse.h”这样的异常,应该是第六步FUSE没有安装好.
如果提示” pkg_config_path”错误,这是因为环境变量没有配置
输入命令
echo $PKG_CONFIG_PATH
这个时候应该会出现空信息,什么都没有,这是因为还没有设置PKG_CONFIG_PATH配置,接着在输入命令
find / -name pkgconfig
一般会出现三个/usr/share/pkgconfig、/usr/lib/pkgconfig、/usr/lib/x86_64-linux-gnu/pkgconfig,后两个根据不同系统可能会有不同,建议选前两个.
最后在设置环境变量
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
如果在创建或者加载卷的时候出现下图的错误提示
这个报错我初步猜测是系统的权限管理问题导致的报错,但是在查阅veracrypt官方的github上issues中别人提出的类似问题之后,这个应该是一个尚未解决的bug,就是不清楚是不是因为是在虚拟机环境下所导致的.
我出现这个问题时是我在普通用户权限下没有使用sudo命令直接运行./veracrypt后导致的,后续我使用sudo su命令将自己切换到root用户之后再继续运行./veracrypt就没有这个报错了,并且此时在切回普通用户后仍然可以正常运行.