1. 前言
Defects4J(https://github.com/rjust/defects4j)作为软件漏洞领域一个非常重要的数据集,绝大多数的漏洞修复相关研究都涉及到了这一数据集,当想要复现这些论文的时候,Defects4J的安装就变得非常重要。而能够查到的关于Defects4J安装与配置的资料比较少,而且很多并不够全面。因此,这里把之前配置Defects4J v2.0.0的步骤以及其中遇到的问题整理和整理一下,供大家参考,希望能够帮到大家。
时间:2023.8.17
2. 事先准备
1.ubuntu版本
本文的所有步骤均是在Ubuntu 20.04.6 LTS下进行的。
并且,不建议在windows下进行安装,一方面,安装过程会变得非常繁琐,另一方面,之前遇到过可以执行defects4j info
以及defects4j checkout
,但无法进行测试的情况,这一问题应该是由于defects4j内部的问题。当然,也有用户在windows下正常安装,但我还是比较简易尽量在ubuntu下安装。
2. 环境配置
defects4J安装需要有以下依赖:
- Java 1.8
- Git >= 1.9
- SVN >= 1.8
- Perl >= 5.0.12
Java
首先,检查是否已经安装Java,若没有,安装java 1.8。
# 检查
java -version
# 安装
sudo apt install openjdk-8-jdk
Git
与Java过程类似,git ≥ 1.9
# 检查
git --version
# 安装
sudo apt install git
svn
svn ≥ 1.8
# 检查
svn -version
# 安装
sudo apt install subversion
svn
perl 在我使用的ubuntu系统中是自带的,不需要安装,但需要检查版本是否满足 Perl ≥ 5.0.12
# 检查
perl -v
# 安装
sudo apt install subversion
3. 额外需求
除了github中列出的依赖外,还需要其他的依赖,如make和gcc。虽然一般的系统中都会用到,但简易的虚拟机中并没有包含。
make
# 检查
make -v
# 安装
sudo apt install make
gcc
# 检查
gcc -v
# 安装
sudo apt install gcc
curl
# 检查
curl --version
# 安装
sudo apt install curl
# 或
sudo cnap install curl
4. Defects4J安装
- 下载项目代码,地址为https://github.com/rjust/defects4j/releases/tag/v2.0.0。
- 创建defects4j文件夹。
mkdir /home/validation/defects4j
- 将压缩包移动到刚才创建的文件夹,并解压到根目录下。
- 进入该文件夹,安装perl依赖。
cd defects4j sudo apt install cpanmius sudo cpanm --install .
- 自动安装(要求网络状况比较好)
./init.sh
- 手动安装 上一步出现问题的话,可以采用手动安装的方式
- 进入project_repos,执行./get_repos.sh
cd project_repos ./get_repos.sh
- 手动下载所需的安装包,在./init.sh中
- 将所有安装包放到对应的位置,并手动解压以及创建软连接。
- 添加环境变量
export PATH=$PATH:"path2defects4j"/framework/bin 或 sudo vim /etc/profile # 将下面这句话添加到文件末尾 export PATH=$PATH:"path2defects4j"/framework/bin # 使环境变量生效 source /etc/profile
- 验证
defects4j info -p Lang
如果出现问题,先不要着急,仔细查看报错信息,可能会有说明缺少的依赖,以及问题的说明。