Ubuntu 14.04 下 Virtual Judge 的搭建

  1. 前期准备工作

1.1 一个Linux系统

因为现场赛的缘故,我一直使用的都是ubuntu。
这里我测试用的是Ubuntu14.04 Desktop 64bit ,当然选择Server会更好一些.
系统的安装不再赘述,作为服务器请选用Server版本。

1.2 更新源

在搭建环境之前,请确保你的源是有效的,速度是给力的,
建议选择一个国内的源14.04 LTS 更新源

sudo vim /etc/apt/sources.list 将原来的源覆盖并保存
最后执行 sudo apt-get update 更新源
1.3 必要文件准备

我们需要下载这几个文件(部分链接需要FQ才能访问):

1.*.sql https://gist.github.com/trcnkq/a3cf7004759d41d79eb7
2.http_client.json https://gist.github.com/trcnkq/7a5deff639ff99475138
3.remote_accounts.json https://gist.github.com/trcnkq/e9dac7eea72d2b781949
4.virtual judge源文件 https://github.com/trcnkq/virtual-judge
如果无法FQ,请用我的备用链接: Vjudge搭建

或者:

——————————————分割线——————————————

FTP地址:ftp://ftp1.linuxidc.com

用户名:ftp1.linuxidc.com

密码:www.linuxidc.com

在 2015年LinuxIDC.com\9月\Ubuntu 14.04 下 Virtual Judge 的搭建

下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm

——————————————分割线——————————————

  1. 必要环境搭建

2.1 JDK的安装和配置

首先需要下载JDK,地址:https://jdk7.java.net/download.html
注意系统是32位还是64位

1.) 解压下载的文件

tar -xzvf jdk1.7.0_80

2.) 移动文件夹到指定目录下

sudo mkdir /usr/lib/jvm
sudo mv jdk1.7.0_80/ /usr/lib/jvm/

3.) 设置环境变量
sudo vim /etc/profile

在文件最后加入如下内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

Ubuntu 14.04 下 Virtual Judge 的搭建

4.) 使修改生效:

sudo source /etc/profile

这时候在终端输入 java –version 查看当前 JDK 版本
至此,JDK 配置完成
Ubuntu 14.04 下 Virtual Judge 的搭建

2.2 Redis的安装和配置

1.) 下载安装Redis:

wget http://download.redis.io/releases/redis-2.8.9.tar.gz  
tar xvzf redis-2.8.9.tar.gz  
cd redis-2.8.9/  
make
sudo make install  

2.) 配置init脚本:

wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server
wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf
sudo mv redis-server /etc/init.d/redis-server
sudo chmod +x /etc/init.d/redis-server
sudo mv redis.conf /etc/redis.conf 

3.) 初始化用户和日志路径
第一次启动Redis前,建议为Redis单独建立一个用户,并新建data和日志文件夹

sudo useradd redis
sudo mkdir -p /var/lib/redis
sudo mkdir -p /var/log/redis
sudo chown redis.redis /var/lib/redis
sudo chown redis.redis /var/log/redis

4.) 设置开机自动启动,关机自动关闭

update-rc.d redis-server defaults

5.) 启动Redis:

/etc/init.d/redis-server start

2.3 Maven3的安装和配置

1.) 通过apt-get安装Maven3
ubuntu12.04之后,可直接用apt-get来获得

sudo apt-get install maven -y

安装完后,进入sudo su 进入root
用 mvn –v 查看一下Maven的版本,如下图:
安装完毕后,默认的JDK版本可能会被更改。
因为Maven3安装的同时把openjdk也一并安装了。
Ubuntu 14.04 下 Virtual Judge 的搭建

2.) 修改系统默认的jdk

update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_80/bin/java 300update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_80/bin/javac 300update-alternatives --config java
update-alternatives --config javac

使用java -version再次查看,JDK版本已更改

Ubuntu 14.04 下 Virtual Judge 的搭建

2.4 Tomcat7的安装和配置

1.) apt-get安装tomcat7:
sudo apt-get install tomcat7 -y

tomcat7默认会被安装在目录/var/lib/tomcat7/下,
安装完之后在浏览器下输入localhost:8080查看是否安装成功
如果出现下图,即为安装成功
Ubuntu 14.04 下 Virtual Judge 的搭建

2.) 安装tomcat7-admin
安装成后,我们还需要安装一个tomcat7-admin

sudo apt-get install tomcat7-admin

3.) 修改账户:
安装完毕之后,我们进入tomcat7的conf目录下修改tomcat-users.xml文件

cd /var/lib/tomcat7/conf/
vim tomcat-users.xml 

我这里用的是

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

Ubuntu 14.04 下 Virtual Judge 的搭建

4.) 重启tomcat:

sudo /etc/init.d/tomcat7 restart

重新在浏览器打开tomcat界面
点击manager webapp,用刚才我们建立的用户登陆
Ubuntu 14.04 下 Virtual Judge 的搭建

5.) 修改JDK默认的JDK版本

检查 tomcat7 的 Server Information,版本可能不是我们自己的jdk版本。
这里我们要修改tomcat使用的JDK版本,这步很重要,否则会出现很多问题

Ubuntu 14.04 下 Virtual Judge 的搭建

sudo vim /etc/default/tomcat7

加入如下内容:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80

再次重启tomcat7:

sudo /etc/init.d/tomcat7 restart

Ubuntu 14.04 下 Virtual Judge 的搭建
OK, tomcat7的JDK版本修改完毕。

2.5 Mysql的安装

sudo apt-get install mysql-server -y
安装过程中会要求你输入数据库的密码,这里我直接用的123456,连续输入两次即可。

进入数据库测试一下
mysql -u root -p
输入密码之后如果看到下图,表明 mysql 成功安装:
Ubuntu 14.04 下 Virtual Judge 的搭建

至此,搭建 Virtual Judge 所需的所有环境,都已搭建完毕!

  1. 工程代码实施

准备好四个文件,就是一开始下载的那四个:
这里写图片描述

3.1 Vjudge的打包

进入virtual-judge-master 目录:

cd virtual-judge-master/

用 Maven 将 Virtual Judge 打包:

mvn clean package  

里面会有一个vjudge.war文件,就是我们打包完成的 Virtual Judge。
把这个war文件拷到tomcat7的webapps目录下。

打包的过程可能会相当长,特别是网络不好的情况下,万一掉包了,非常蛋疼,如果你不想等待太久,可以直接下载此文件,百度网盘

放到webapps目录后,会自动生成一个vjudge文件夹,如果没有生成,你也可以自行解压。
Ubuntu 14.04 下 Virtual Judge 的搭建

3.2 remote_accounts.json文件的编辑

把各个OJ的提交账号添加到remote_accounts.json里。

3.3 config.properties文件的编辑

如不需要代理或VPN访问国外OJ,保留http_client.json里面的[“direct”]即可。

Ubuntu 14.04 下 Virtual Judge 的搭建

3.4 vjudge的简单部署

把 remote_accounts.json 和 http_client.json 两个文件放在指定的文件夹下
这里我放在 /var/lib/tomcat7/webapps/vjudge/ 目录下

sudo mv http_client.json /var/lib/tomcat7/webapps/vjudge/
sudo mv remote_accounts.json /var/lib/tomcat7/webapps/vjudge/

更改/webapps/vjudge/WEB-INF/classes/的目录下config.properties文件
将remote_accounts.json和http_client.json的绝对路径改为正确的路径

cd /var/lib/tomcat7/webapps/vjudge/WEB-INF/classes/
sudo vim config.properties

Ubuntu 14.04 下 Virtual Judge 的搭建

PS:如果你的数据库密码不是123456,那么上面的root密码你也需要修改,默认为123456

3.5 vhoj数据库的建立

在mysql中新建一个数据库,名字为:vhoj,
并把表vhoj_20141109.sql导入(可能我的版本略微旧了点)。

mysql -u root -p  
create database vhoj;  
exit; 

Ubuntu 14.04 下 Virtual Judge 的搭建

mysql -h localhost -u root -p vhoj < vhoj_20141109.sql
Ubuntu 14.04 下 Virtual Judge 的搭建

最后,重启tomcat7,进入manager
查看Application,可以看到vjudge已经处于running状态了。
Ubuntu 14.04 下 Virtual Judge 的搭建

  1. 大功告成的Vjudge

在地址栏输入localhost:8080/vjudge,进入搭建成功的vjudge:

Ubuntu 14.04 下 Virtual Judge 的搭建

到此为止,Virtual Judge 终于搭建成功,just enjoy it!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QML Profiler性能优化教程

QML Profiler 2018年1月26日 vincent 对于一个程序的开发&#xff0c;性能优化是开发中的一个重要步骤。 我们肯定不希望开发出来的程序表现出卡顿&#xff0c;最好是处处流畅&#xff0c;丝滑般的体验。 对于C程序&#xff0c;我们有很多方法可以做性能优化&#xff0c;例如…

uburntu在不能自动获取网络时的联网设置

一&#xff1a;网络基础配置 1. eth0设置不正确&#xff0c;导致无法正常启动&#xff0c;修改eth0配置文件就好 ubuntu 12.04的网络设置文件是/etc/network/interfaces&#xff0c;打开文件&#xff0c;会看到 auto lo iface lo inet loopback 这边的设置是本地回路。在后…

计算机显卡知识普及

显卡知识普及 一、什么是显卡&#xff1f; 显示接口卡&#xff08;Video card&#xff0c;Graphics card&#xff09;、显示器配置卡简称为显卡&#xff0c;是个人电脑基本组成部分之一。 用途是将计算机系统所需要的显示信息进行转换驱动&#xff0c;并向显示器提供信号&…

QML 控件大全

QML TypeContainerDelayButtonDialDialogButtonBoxDialogDrawerMenuMenuBarOverlayPageIndicatorRangeSliderScrollViewSpinBoxStackViewSwipeViewSwitchTabBarToolBarToolSeparatorToolTipTumbler QML Type 本篇主要介绍QtQuick Controls 2,Qt Creator 5.10 1.Container im…

Qt与QML的枚举绑定(C++枚举)

Qt到QML的枚举绑定 QML中是不支持c的枚举类型的&#xff0c;所以我们可以使用Qt的元对象系统&#xff0c;即MOS,来帮助我们实现。 进行绑定的好处就是&#xff0c;以后数据发生变化的时候&#xff0c;就是枚举发生增加修改&#xff0c;添加等的时候&#xff0c;不需要在QML中…

利用pyinstaller打包python3程序

pyInstaller是一款用于将pyhon程序打包成exe文件的工具&#xff0c;pyInstaller不是一个python的包&#xff0c; 只需要把pyInstaller的文件下载下来放到任意为止都可以&#xff0c;也就是说pyInstaller相当于独立出来专门干打包python的工具&#xff0c;这货是工具不是库&…

什么是递归函数?

文章目录递归函数递归例题特点效率优点递归函数 递归 递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身&#xff0c;每调用一次就进入新的一层。递归函数必须有结束条件。 当函数在一直递推&#xff0c;直到遇到墙后返回&#xff0c;这个墙就是结束条…

Angular的@Output与@Input理解

@Output与@Input理解 Output和Input是两个装饰器,是Angular2专门用来实现跨组件通讯,双向绑定等操作所用的。 @Input Component本身是一种支持 nest 的结构,Child和Parent之间,如果Parent需要把数据传输给child并在child自己的页面中显示,则需要在Child的对应 directiv…

腾讯云CDN配置

第一步&#xff1a;先去领取腾讯云CDN免费包23333333 以下为正式步骤&#xff1a; 在这里体现大家&#xff0c;域名一定要备案&#xff0c;另外要明白域名如何解析 前边问题不大&#xff0c;一切跟着腾讯云的套路来即可&#xff0c;需要注意的是网上后优化的配置大家可以自行…

Ubuntu中安装python3

通过命令行安装Python3.*&#xff0c;只需要在终端中通过命令行安装即可&#xff1a; sudo apt-get install python3 Ubuntu的底层大多数采用的是Python2.*&#xff0c;Python3和Python2是互相不兼容的&#xff0c;完全没法通用的&#xff08;也不知道他们怎么想的o(TヘTo)&a…

目标检测与分割总结

目标检测最常用的三个模型&#xff1a;Faster R-CNN、SSD和YOLO Faster R-CNN架构 在Faster RCNN中&#xff0c;候选框是经过RPN产生的&#xff0c;然后再把各个“候选框”映射到特征图上&#xff0c;得到RoIs。 Faster R-CNN步骤&#xff1a; (1) 由输入图片产生的区域候选…

win10连接烟台大学校园网

第一步 右键网络图标&#xff0c;打开网络管理中心 第二步&#xff1a; 设置添加新的网络&#xff0c;方法步骤如下&#xff1a; 第三步&#xff1a;新建VPN连接&#xff0c;注意协议为L2TP 第四步&#xff1a; 第五步&#xff1a; 第六步&#xff1a; 创建结束后进入更…

U-Net++粗略解释

Paper&#xff1a;UNet: A Nested U-Net Architecture for Medical Image Segmentation u-net网络的基本拓扑结构 目前最先进的图像分割模型是各种个同样的 encoder-decoder架构&#xff0c;他们具有一个关键的相似性&#xff1a;skip connections&#xff0c;它可以将编码器…

Docker+Nginx部署Angular

DockerNginx部署Angular 在部署Angular生产环境之前&#xff0c;需要电脑已经安装docker。 添加Dockerfile 在已经完成的Angular项目的项目根目录下添加Dockerfile文件。 Dockerfile文件内容&#xff1a; FROM nginx:1.11-1.11-alpine COPY index.html /usr/share/nginx/ht…

U-net网络详解

U-net网络 简单说一下网络图中各项所代表的内容&#xff1a; 蓝/白色框表示feature map(特征图) 蓝色箭头表示3x3卷积&#xff0c;主要用于特征提取 灰色箭头表示skip-connection&#xff08;跳跃连接&#xff0c;通常用于残差网络中&#xff09;,在这里是用于用于特征融合&…

SOLO算法简读

论文链接&#xff1a;https://arxiv.org/abs/1912.04488 代码链接&#xff1a;https://github.com/WXinlong/SOLO 摘要 提出一种新的实例分割方法。与语义分割等其他密集预测任务相比&#xff0c;实例分割的难度要大得多。为了预测每个实例的掩码&#xff0c;主流方法要么遵…

关于Loss的简单总结

Dice Loss 参考&#xff1a;https://blog.csdn.net/l7H9JA4/article/details/108162188 Dice系数&#xff1a; 是一种集合相似度度量函数&#xff0c;通常用于计算两个样本的相似度&#xff0c;取值范围为[0,1]。 s2∣X∩Y∣∣X∣∣Y∣s \frac{2|X ∩ Y|}{|X||Y|} s∣X∣∣Y…

SOLOv2论文简读

论文&#xff1a;SOLOv2: Dynamic, Faster and Stronger 代码&#xff1a;https://github.com/WXinlong/SOLO 摘要 主要提出了作者在SOLOv2中实现的优秀的实例分割方法&#xff0c;旨在创建一个简单、直接、快速的实例分割框架&#xff1a; 通过提出动态学习对象分割器的mas…

Ubuntu18.04 关于使用vnc的踩坑

由于种种原因&#xff0c;手上多了一台可使用的桌面版Ubuntu&#xff0c;正好用来测试代码&#xff0c;方便调试。因为只能远程&#xff0c;所以需要配置远程连接。因此就打算使用vnc进行远程连接&#xff0c;谁料一路坎坷&#xff0c;特此记录。 安装 设置桌面共享 需要注意…

App_Shell模型

App_Shell模型 App Shell 架构是构建 Progressive Web App 的一种方式,这种应用能可靠且即时地加载到您的用户屏幕上,与本机应用相似。 App shell是支持用户界面所需的最小的 HTML、CSS 和 JavaScript,如果离线缓存,可确保在用户重复访问时提供即时、可靠的良好性能。这意…