【Defects4J一气呵成】在VMWare上新建Ubuntu 18.04 虚拟机,并安装JDK 8,复现Defects4J最新版本(818个bug,version 2.0.0)
文章目录
- 前言
- 1.1 创建Ubuntu虚拟机
- 1.1.1下载VMWare
- 1.1.2 下载Ubuntu系统镜像
- 1.1.3 新建虚拟机
- 1.1.4 更换apt源
- 1.1.5 【可选】使用xshell连接
- 1.1.6 安装JDK8
- 1.2 配置Defects4J缺陷数据集
- 1.2.1 安装基础工具
- 1.2.2 下载Defects4J
- 1.2.3 自动配置Defects4J
- 1.2.4 【可选】手动配置Defects4J
- 1.2.5 Defect4J实例展示
- 小结
- 参考文献
前言
创作开始时间:2021年3月25日08:47:45
如题。一气呵成冲冲冲。
1.1 创建Ubuntu虚拟机
1.1.1下载VMWare
首先下载VMWare安装包(版本:VMware® Workstation 16 Pro 16.1.0 build-17198959
),官方下载地址为:
https://my.vmware.com/cn/web/vmware/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0
1.1.2 下载Ubuntu系统镜像
随后下载Ubuntu 18.04安装镜像,下载网址为:
- Ubuntu官方网站http://releases.ubuntu.com/18.04/ubuntu-18.04.5-desktop-amd64.iso
- 阿里云镜像网站 http://mirrors.aliyun.com/ubuntu-releases/18.04/ubuntu-18.04.5-desktop-amd64.iso
1.1.3 新建虚拟机
在VMWare界面开始新建即可,基本上是默认安装,下列图中提供部分描述:
图:新建虚拟机(1)
图:新建虚拟机(2):选定镜像
图:新建虚拟机(3):设定用户名(密码:123456)
图:新建虚拟机(4):自动安装VM-tools
1.1.4 更换apt源
此时,我们已经得到一台名为apr-demo的虚拟机。启动这台虚拟机,在安装新软件之前,我们需要先更换一下apt源,以免下载太慢。
此处换源可参考:
- Ubuntu18.04更换国内源 https://developer.aliyun.com/article/639051
换源之后运行一下sudo apt-get update即可(此处不需要运行sudo apt-get upgrade)。
1.1.5 【可选】使用xshell连接
通过xshell以ssh的方式连接本地虚拟机。这是为了在终端输入命令的时候更加方便,免去了在Windows本机和Ubuntu虚拟机之间的切换。
此处参考:
- xshell如何登录本地虚拟机 https://www.xshellcn.com/xsh_column/bendi-xuniji.html
即可。
备注: 如果无法连接,则需要在虚拟机中输入:
sudo apt-get install openssh-server #下载
sudo service ssh --full-restart #重新启动ssh服务
ssh localhost #仍旧在Ubuntu上运行这个指令,此时发现已经可以连接
此处参考:
- Windows上通过ssh和VNC Viewer分别连接本地Ubuntu(WSL)的终端和图形界面 https://blog.csdn.net/weixin_39278265/article/details/103391805
然后再重新用xshell试试。此时发现已经可以顺利连接了。(如下图)
图:xshell成功连接Ubuntu虚拟机
1.1.6 安装JDK8
在虚拟机终端运行:
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre
java -version
随后往/etc/environment文件中添加:
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
此处参考:How to Install JAVA 8 on Ubuntu 18.04/16.04, Linux Mint 19/18 https://tecadmin.net/install-oracle-java-8-ubuntu-via-ppa/
1.2 配置Defects4J缺陷数据集
1.2.1 安装基础工具
安装git等基础工具:
sudo apt install git -y
sudo apt install subversion -y
sudo apt install curl -y (defects4j下载文件需要)
sudo apt install htop -y
sudo apt install make -y (cpan需要)
sudo apt install gcc -y (cpan需要,否则DBI模块无法下载)
1.2.2 下载Defects4J
Defects4J的仓库地址在:https://github.com/rjust/defects4j
有两种方式下载该repo:
- 直接运行git clone https://github.com/rjust/defects4j.git
- 如果觉得github克隆网速太慢,可以先克隆到自己的gitee账户,然后再从gitee中克隆到虚拟机(如git clone https://gitee.com/xxx/defects4j.git)
1.2.3 自动配置Defects4J
cd ~/env/defects4j
sudo apt install cpanminus
sudo cpanm --installdeps . (一定要sudo的,不然无法写入,等于没装)
./init.sh
而后修改/etc/profile/文件,加入如下内容:
export PATH=$PATH:/home/apr-demo/env/defects4j/framework/bin
然而,由于./init.sh运行时会从对应网站下载一系列压缩文件,这个过程中网速通常比较慢。如下图(预计三小时才能下载好一个压缩包):
图:./init.sh运行时的网速
因此,下面给出手动配置方案。
1.2.4 【可选】手动配置Defects4J
手动下载如下压缩包:
4. https://defects4j.org/downloads/defects4j-repos.zip
5. https://mutation-testing.org/downloads/major-1.3.4_jre7.zip
6. https://github.com/EvoSuite/evosuite/releases/download/v1.1.0/evosuite-1.1.0.jar
7. https://github.com/EvoSuite/evosuite/releases/download/v1.1.0/evosuite-standalone-runtime-1.1.0.jar
8. https://github.com/randoop/randoop/releases/download/v4.2.5/randoop-4.2.5.zip
9. https://defects4j.org/downloads/defects4j-gradle-dists.zip
10. https://defects4j.org/downloads/defects4j-gradle-deps.zip
11. https://github.com/jose/build-analyzer/releases/download/v0.0.1/build-analyzer-0.0.1.jar
然后在Defects4J目录下新建一个文件夹“manual_download”,把刚刚下载的文件都拷贝进去,随后在此文件夹下写一个cp.sh脚本:
BASE=/home/apr-demo/env/defects4j/
DIR_REPOS="$BASE/project_repos"
DIR_LIB_GEN="$BASE/framework/lib/test_generation/generation"
DIR_LIB_RT="$BASE/framework/lib/test_generation/runtime"
DIR_LIB_GRADLE="$BASE/framework/lib/build_systems/gradle"cp defects4j-repos.zip $DIR_REPOScp major-1.3.4_jre7.zip $BASEcp evosuite-1.1.0.jar $DIR_LIB_GEN
cp evosuite-standalone-runtime-1.1.0.jar $DIR_LIB_RTcp randoop-4.2.5.zip $DIR_LIB_GENcp defects4j-gradle-deps.zip $DIR_LIB_GRADLE
cp defects4j-gradle-dists.zip $DIR_LIB_GRADLEcp build-analyzer-0.0.1.jar $BASE/framework/lib
运行一下这个脚本,然后再回到defects4j的主目录,注意:要相应改动init.sh文件中的内容,即禁止download_url函数。具体此处不赘述(因为init.sh行数较多),可参考我已配置好的虚拟机。
而后运行./init.sh即可。
图:右侧终端表明Defects4J配置成功
另外,gradle要额外配置一下,在defects4j目录下新建init_gradle.sh(内容较长,此处不贴),然后运行,才算配置好了gradle。
最后,需要修改/etc/profile,添加:
# defects4j
export PATH=$PATH:/home/apr-demo/env/defects4j/framework/bin#Time Zone for d4j
TZ="America/Los_Angeles"
export TZ
1.2.5 Defect4J实例展示
在终端运行:
defects4j checkout -p Lang -v 1b -w /tmp/lang_1_buggy
cd /tmp/lang_1_buggy
defects4j compile
defects4j test
此外,还可以参考虚拟机中文件:/home/apr-demo/apr_tools/d4j/single_download.sh
小结
以上。
创作结束时间:2021年3月25日08:54:10
参考文献
见正文。
【Defects4J一气呵成】在VMWare上新建Ubuntu 18.04 虚拟机,并安装JDK 8,复现Defects4J最新版本(818个bug,version 2.0.0)相关推荐
- Win 10 + VMware Workstation Pro15 + Ubuntu 18.04 虚拟机安装教程
一 .官网下载VMware Workstation Pro 15安装包和ubuntu iso映像文件 1 VMware Workstation Pro 15安装 (1)网址:https://ww ...
- Ubuntu 18.04.1 下安装搜狗输入法
Ubuntu 18.04.1 下安装搜狗输入法 1.下载linux版本的搜狗拼音输入法 2.解包(若没有安装fcitx会出错,Ubantu命令行会有提示,按提示安装好fcitx后再输入下面命令即可): ...
- VMware安装Ubuntu 18.04虚拟机(镜像下载、硬盘分区、创建虚拟机、安装系统、桥接模式网络配置)
1. VMware安装 安装VMware,Player免费,而且功能足够个人开发使用.(Pro的主要区别在于可以同时运行多个虚拟机,而Player只能同时运行一个) VMware Workstatio ...
- 为VMware vSphere创建Ubuntu 18.04 Terraform模板
为VMware vSphere创建Ubuntu 18.04 Terraform模板 Terraform是HashiCorp创建的自动化工具.它专注于以自动方式部署云基础架构.它支持许多云提供商,例如A ...
- VMWare 15中Ubuntu 18.04安装VMWare Tools
VMWare 15中Ubuntu 18.04安装VMWare Tools 这篇文章写给以后的自己看,因为怕以后忘了. 1.先点击"虚拟机"之后点击"安装VMWare To ...
- Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)上
Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)上 一.前言 二.化繁为简 三.补充说明 小结 一.前言 最近需要学习ROS和python,于是便需要装Linux系统 ...
- linux上pyenv卸载,在Ubuntu 18.04系统下安装pyenv的方法
本文介绍在Ubuntu 18.04操作系统下安装pyenv的方法,使用它可以进行Python多版本管理,目的是防止不同的Python版本因为不兼容而出现错误.安装pyenv其实非常的简单,只需要在系统 ...
- linux ubuntu安装 mono,在Ubuntu 18.04系统中安装Mono及基本使用Mono的方法
本文介绍在Ubuntu 18.04操作系统中安装Mono及基本使用Mono的方法.Mono是一个基于ECMA/ISO标准开发和运行跨平台应用程序的平台,它是Microsoft .NET框架的免费开源实 ...
- Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)下
Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)下 一.前言 二.化繁为简 二.补充说明 三.测试ROS 是否安装成功 一.前言 最近需要学习ROS和python,于 ...
最新文章
- 非关系型数据库(NoSQL)
- Linux shell脚本数值计算个人心得
- Python函数篇(5)-装饰器及实例讲解
- [深度学习基础] 深度学习基础及数学原理
- .net html转义字符,asp.net转义字符
- java 页面输出一个页面_java学习之:一个完整页面输出信息的过程(以输出Doctor表中信息为例)...
- c语言程序设计数据存储方案,c语言程序设计“第02章数据的存储及运算.ppt
- Redis 持久化——RDB
- VS编辑代码时使用正则表达式去掉行号
- windows下cmd中命令操作
- Sophos 修复 Cyberoam OS 中的 SQL 注入漏洞
- 清爽登录界面html,基于css3实现扁平简洁清爽的登录注册页面代码
- 有关计算机组成原理知识的论文,计算机组成原理课程相关论文
- 数据库系统概念读书笔记-SQL标准简介
- c++ 调用meshlab程序慢_从Meshlab学架构
- coap 返回版本信息_CoAP协议浅析
- 软件开发版本管理规范
- Ubuntu18.04 显卡驱动安装(GTX1060)正确步骤
- 对数函数图像增减性质
- 去除CSDN 博客页广告的历程
热门文章
- 爱奇艺EPG(复刻平板端)
- linux xfs分区实例,linux划分使用XFS分区的方法
- EF Core与ASP.NET Core 的集成
- Java模拟文件发送给服务器,服务器将文件转发给其他用户,并保存到服务器本地,其他用户可以接收,并保存到本地磁盘,支持各种文件格式,并解决通信中服务器怎么区分客户端发来的文件类型
- Linux nginx 基础介绍与安装版本选择
- Python安装:手动添加Python环境变量
- 学习Opencv+Python之银行卡卡号识别
- 达梦数据库自动备份与手动备份, 还原与恢复具体操作步骤,带图(超详细,windows+linux)
- 张子阳的文章-写给毕业生
- IT学习用的工具软件