https://github.com/zhblue/hustoj (HUST现在运行(freefcw新版web):https://github.com/freefcw/hustoj)
1)下载livecd 2014版本(ubuntu 是10.4.x,轻量级的,nginx做前端,几乎没有桌面应用,但是有codeblocks)
2)启动进入,安装,进入系统,(root freeproblemset)
3)浏览器检查127.0.0.1 点击oj链接,进入,(admin/admin),提交测试,试题正常提交,可以编译和评测,并且出现部分分,适合oi
4)升级 hustoj
简单说就是
检出最新web,复制原upload目录到新目录,测试后切换。
检出最新core,./make.sh。
管理员登陆后台,更新数据库。
现在的最新代码放在github,因此升级需要从github取得最新源码。(如果是root进,可以不用sudo)
sudo svn checkout https://github.com/zhblue/hustoj/trunk/trunk/web /var/www/new/
sudo cp -a /var/www/JudgeOnline/include/db_info.inc.php /var/www/new/include/
sudo cp -a /var/www/JudgeOnline/upload /var/www/new/
sudo svn checkout https://github.com/zhblue/hustoj/trunk/trunk/core core (因网络部稳定,若不成功,ctrl+c结束再多开几次即可)
cd core
sudo pkill -9 judged
sudo ./make.sh(如果不成功,安装 flex软件,可以搞定)
sudo judged
访问http://原OJ地址/new(如果nginx请加规则)
登陆,后台,更新数据库。
测试无误后
sudo mv /var/www/JudgeOnline /var/www/oldOJ
sudo mv /var/www/new /var/www/JudgeOnline
个人感觉主要是在判题界面上,内部功能测试少,暂时没发觉(导出所有代码在自己账号里,生成新用户,在竞赛管理中)
5)升级gcc g++
测试用的Ubuntu10.04默认的是使用gcc4.4.3,而只有gcc4.7才开始支持C++11,使用如下办法升级Ubuntu 10.04下的gcc和g++:
1.更新Ubuntu的gcc和g++版本,依次进行如下操作:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7(目前最新4.9,此版)
sudo apt-get install g++-4.7
2.如果安装过程中提示有存在依赖关系的文件未安装,gcc-4.6-base,则先安装该软件:
sudo apt-get install gcc-4.6-base
3.升级完成使用gcc --v
(1)若显示有多个软件包包含gcc,让选择一个安装。可是进行gcc重新又显示已经安装。进入/usr/bin/目录后发现gcc-4.7和g++-4.7都存在,但是未发现他们的链接gcc和g++(其实我们平常使用的gcc和g++都是指向具体版本例如gcc-4.7和g++-4.7的符号链接哦),因此重建符号链接即可
cd /usr/bin
sudo ln -s gcc-4.7 gcc
sudo ln -s g++-4.7 g++
(2)若显示版本依然是4.4.3(或者你的旧版本号),并没有把4.7版设置为默认的gcc的链接文件,进入/usr/bin/把gcc这个文件删除,建立链接到gcc-4.7(g++类似):
cd /usr/bin
sudo rm gcc(可以大胆删除,gcc-4.4还是存在的)
sudo ln -s gcc-4.7 g++
sudo rm g++
sudo ln -s g++-4.7 g++
4.网页提交程序,一起正常。