Herramientas de usuario

Herramientas del sitio


cms

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
cms [2024/03/05 11:56] – Move optional language dependences Carlos Galindocms [2026/05/19 10:49] (actual) – add cgroup2 information Administrador
Línea 3: Línea 3:
 CMS es un sistema para concursos de programación basado en subtareas en lugar de intentos/tiempo como DOMJudge. CMS es un sistema para concursos de programación basado en subtareas en lugar de intentos/tiempo como DOMJudge.
  
-===== Instalación (1.5.dev0) =====+===== Instalación (v1.5.1) =====
  
-  - Sistema: ubuntu20.04 o equivalentes. Las versiones de Python que acepta son limitadas. +  - Sistema: ubuntu24.04 o equivalentes. Las versiones de Python que acepta son //muy// limitadas. 
-  - Instalación de CMS+  - Verificamos que ''cgroup2'' está habilitado, y no la versión 1 también. Podemos probar con el siguiente comando: 
 +<code bash> 
 +$ grep cgroup /proc/mounts 
 +cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot 0 0 
 +</code> 
 +Si no es así, hay que deshabilitarlo, editando ''/etc/default/grub'' como se muestra y ejecutando ''sudo update-grub'': 
 +<code diff> 
 +-GRUB_CMDLINE_LINUX_DEFAULT="systemd.unified_cgroup_hierarchy=0" 
 ++GRUB_CMDLINE_LINUX_DEFAULT="systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all" 
 +</code> 
 +  - Instalación de CMS (se requiere un usuario con permisos de superusuario, aunque sea para la instalación):
 <code bash> <code bash>
 # Install requirements # Install requirements
Línea 12: Línea 22:
     build-essential \     build-essential \
     cgroup-lite \     cgroup-lite \
-    git \ 
     libcap-dev \     libcap-dev \
     libcups2-dev \     libcups2-dev \
Línea 19: Línea 28:
     libyaml-dev \     libyaml-dev \
     postgresql-client \     postgresql-client \
-    python3-pip +    python3.12 
-    python3.+    python3.12-dev 
-    python3.8-dev \+    python3.12-venv \
     sudo \     sudo \
-    wait-for-it \ 
     zip     zip
-Optional requirements for specific languages: +Además, si se quieren usar otros lenguajes que no sean CPython 3, deben instalarse compiladores.
-# C++ (docs): cppreference-doc-en-html +
-# Pascal: fp-compiler +
-# Java: openjdk-8-jdk-headless +
-# Haskell: haskell-platform +
-# C#: mono-mcs +
-# PHP: php7.4-cli +
-# Python2: python2 +
-# Rust: rustc+
  
 # Create cmsuser user with sudo privileges # Create cmsuser user with sudo privileges
Línea 42: Línea 42:
 # Change user and setup with python # Change user and setup with python
 sudo su - cmsuser sudo su - cmsuser
-git clone --recursive https://github.com/cms-dev/cms.git+curl -https://github.com/cms-dev/cms/releases/download/v1.5.1/v1.5.1.tar.gz | tar -xz
 cd cms cd cms
-sudo pip3 install -r requirements.txt 
 sudo python3 setup.py install sudo python3 setup.py install
 sudo python3 prerequisites.py --yes --cmsuser=cmsuser install sudo python3 prerequisites.py --yes --cmsuser=cmsuser install
 +# Installing dependencies and cms to a virtual environment.
 +python3 -m venv ~/.venv
 +. ~/.venv/bin/activate
 +pip install -r requirements.txt
 +pip install .
 +# required or the program crashes
 +pip install setuptools==68.1.2
 </code> </code>
   - Configure: move the .conf at ''/usr/local/etc'' and set the password on the database setting. Also, generate a ''secret_key''.   - Configure: move the .conf at ''/usr/local/etc'' and set the password on the database setting. Also, generate a ''secret_key''.
Línea 69: Línea 75:
     * cmsScoringService: calcula la puntuación dada la evaluación.     * cmsScoringService: calcula la puntuación dada la evaluación.
     * cmsWorker (al menos 1): ejecuta los programas enviados por los usuarios.     * cmsWorker (al menos 1): ejecuta los programas enviados por los usuarios.
 +
 +Nota: como la instalación ha sido realizada en un ''venv'', los comandos ''cms*'' solo están disponibles dentro de este, por lo que se debe activar al iniciar la sesión. Por tanto, para los servicios systemD se recomienda la siguiente plantilla.
 +
 +<code>
 +# /home/cmsuser/.config/systemd/user/cmsSUBPROGRAM.service
 +[Unit]
 +Description=CMS SUBPROGRAM description
 +
 +[Service]
 +ExecStart=/bin/bash -c 'source /home/cmsuser/.venv/bin/activate && cmsSUBPROGRAM [PARAMS]'
 +
 +[Install]
 +WantedBy=default.target
 +</code>
cms.1709639785.txt.gz · Última modificación: por Carlos Galindo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki