欢迎光临散文网 会员登陆 & 注册

UOJ ubuntu 14升级20

2022-04-04 02:36 作者:云山为何处  | 我要投稿

UOJ官网:https://uoj.ac 

UOJ部署:首页 - UOJ部署指北 (universaloj.github.io)

新建UOJ项目,请按照上面文档来。本篇攻略讲旧版升级问题。


1.进入docker 容器,显示系统版本命令 lsb_release -a


ubuntu 14

2.切换apt源,文件 /etc/apt/sources.list

          先备份: mv sources.list sources.list.bak

          写入阿里源:vim sources.list

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted

deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse

deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties

deb http://archive.canonical.com/ubuntu xenial partner

deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties

deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse


3.apt相关更新,非root用户记得 root

         apt update &&  apt upgrade &&  apt autoremove

         1.如果出现warning信息,软件找不到 apt -f install

         2.如果出现“apt list --upgradable”提示,需要手动升级一些软件包。

                   apt list --upgradable 查看待升级软件

                   apt install + 软件名称


4.安装系统升级命令

          1.运行第3步的时候,有可能会直接升级到16版本。需要通过第1步的命令确认一下

          2.apt install update-manager-core

          3.sudo do-release-upgrade  升级系统

                   遇到yn两项选择的时候,选y

                   遇到yn,defaut 三项选择,是和apache2有关的,直接敲回车

        系统升级,14、16、18、20这样升级,并不是14直接到20了


5.当系统升级到20的时候,不少软件都会跟着升级,例如php、apache2、python、gcc等。

           apache2重启动命令:service apache2 restart 

              php7.4需要处理的事情:      

                 apt install php7.4-mysql

                 apt install php7.4-zip

                 apt install php7.4-mbstring

         

            修改php.ini文件

                 vim /etc/php/7.4/apache2/php.ini 

                   可暂时将 display_errors = On,开启错误显示

                extension=mysqli、extension=zip、extension=mbstring 扩展打开,

                没有的添加即可


      重启apache2项目应该跑起来了,修改web端

            app/lib/DB.php ,mv DB.php DB5.php

                                        mv DB7.php DB.php

      网站端:  

               将构造函数里的mysqli_connect() 修改为, new mysqli();
            修改 num_rows() 方法,修改:

                   global $uojMySQL;

                   return MYSQLI_NUM_rows($uojMySQL);

         修改 index.php文件,将Session_start()函数注释掉。


        好了,这时候项目运行起来了。还是会有一些小错误,可以选择根据报错信息修改一下。

       或者将display_errors = Off,看不见 0.0


6.评测机

        ps -ef | grep judge 看一下评测机是否启动

        su local_main_judger -c '~/judge_client/judge_client update'

        vim /root/up 文件里,可以看到评测机的启动命令。运行下,看有什么报错


        python 的requests 库需要重新安装一下,不着急。

        下载新版的judge: https://github.com/vfleaking/uoj/tree/master/judger 

        旧版的judge可以mv掉做个备份,新版的上传服务器。

        通过 docker cp xxx  容器ID:/xxxx 命令复制到容器内。


        运行  su local_main_judger -c '~/judge_client/judge_client update'

        新版judge 使用python 3.9版本,需要安装3.9版本的python

        根据错误提示,安装相关的东西。

        c库  apt install libseccomp-dev

        judge_client  280(243?) 行 execute(f'touch -a {pipes.quote(path)}')注释掉。

        新版本的judge代码有不少优化。


        好了,现在judge启动起来了,web也没问题了,提交一个代码试试。


总结:

        根据记忆中的流程,和一些笔记整理的。后续在优化

        

        

UOJ ubuntu 14升级20的评论 (共 条)

分享到微博请遵守国家法律