Como posso configurar o CMS (Contest Management System) no Ubuntu 16.04? [fechadas]

-1

Estou tentando configurar o CMS (que pode ser encontrado aqui aqui ) no Ubuntu 16.04 32bit.
Eu sou um noob completo quando se trata do Ubuntu, então eu gostaria de perguntar a vocês e garotas se alguém puder me guiar por isso eu ficaria muito grato.
Você também pode fornecer muitos detalhes de A a Z porque eu não acho que posso resolver um problema sozinho quando se trata do Ubuntu.

    
por Mahmood Darwish 05.06.2017 / 11:03

1 resposta

2

Copiado diretamente das instruções de instalação oficiais :

% bl0ck_qu0te%      

Para executar o CMS, há algumas etapas de preparação para executar (como instalar o sandbox, compilar arquivos de localização, criar o cmsuser e assim por diante). Você pode executar todas essas etapas manualmente ou executar o seguinte comando:

sudo ./prerequisites.py install
     

Este script adicionará você ao grupo cmsuser se você responder Y quando solicitado. Se você quiser gerenciar seus grupos sozinho, responda N e execute:

sudo usermod -a -G cmsuser <your user>
     

Você pode verificar se está no grupo emitindo o comando:

groups
     

Lembre-se de efetuar logout para tornar a alteração efetiva.

     % bl0ck_qu0te%      

Instalando o CMS e suas dependências Python

     

Existem várias maneiras de instalar o CMS e suas dependências Python:

     

Método 1: instalação global com pip

     

Existem boas razões para instalar o CMS e suas dependências Python via pip (Python Package Index) em vez de seu gerenciador de pacotes (por exemplo, apt-get). Por exemplo: duas distro diferentes do Linux (ou duas versões diferentes da mesma distro) podem oferecer duas versões diferentes de python-sqlalchemy . Ao usar o pip, você pode optar por instalar uma versão específica de sqlalchemy que funcione corretamente com o CMS.

     

Supondo que você tenha pip instalado, você pode fazer isso:

sudo pip2 install -r requirements.txt
sudo python2 setup.py install
     

Esse comando instala dependências do python globalmente. Note que em algumas distros, como o Arch Linux, isso pode interferir no gerenciador de pacotes do sistema. Se você quiser realizar a instalação na sua pasta pessoal, você pode fazer isso:

pip2 install --user -r requirements.txt
python2 setup.py install --user
     

Método 2: ambiente virtual

     % bl0ck_qu0te%      

Depois de instalar o virtualenv , você precisará criar um ambiente virtual em algum lugar do sistema de arquivos. Por exemplo, vamos supor que você tenha decidido criá-lo em seu diretório pessoal (como ~/cms_venv ):

virtualenv -p python2 ~/cms_venv
     

Para ativá-lo:

source ~/cms_venv/bin/activate
     

Após a ativação, o comando pip estará sempre disponível (mesmo que não esteja disponível globalmente, por exemplo, porque você não o instalou). Em geral, todo comando python (python, pip) se referirá a sua versão virtual correspondente. Então, você pode instalar dependências python emitindo:

pip install -r requirements.txt
python setup.py install
     % bl0ck_qu0te%      

Método 3: Usando apt-get no Ubuntu

     % bl0ck_qu0te%      

Para instalar o CMS e suas dependências Python no Ubuntu, você pode emitir:

sudo python setup.py install
sudo apt-get install python-setuptools python-tornado python-psycopg2 python-sqlalchemy python-psutil python-netifaces python-crypto python-tz python-six python-beautifulsoup python-mechanize python-coverage python-mock python-requests python-werkzeug python-gevent python-bcrypt python-chardet patool

# Optional.
sudo apt-get install python-yaml python-sphinx python-cups python-pypdf2
     

Executando o CMS não instalado

     

Para executar o CMS sem instalá-lo no sistema, você precisa primeiro criar os pré-requisitos:

./prerequisites.py build
     

Ainda há algumas etapas para concluir manualmente nesse caso. Primeiro, adicione o CMS e isole-o no caminho e crie os arquivos de configuração:

export PATH=$PATH:./isolate/
export PYTHONPATH=./
cp config/cms.conf.sample config/cms.conf
cp config/cms.ranking.conf.sample config/cms.ranking.conf
     

Em segundo lugar, execute estas tarefas (que exigem permissões de root):

     
  • crie o usuário cmsuser e um grupo com o mesmo nome;
  •   
  • adicione seu usuário ao grupo cmsuser ;
  •   
  • defina isolate como propriedade de root: cmsuser e defina seu bit suid.
  •   

Por exemplo:

sudo useradd cmsuser
sudo usermod -a -G cmsuser <your user>
sudo chown root:cmsuser ./isolate/isolate
sudo chmod u+s ./isolate/isolate
     

Atualizando o CMS

     

Conforme o CMS se desenvolve, o esquema do banco de dados usado para representar seus dados pode ser atualizado e novas versões podem introduzir alterações incompatíveis com versões mais antigas.

     

Para preservar os dados armazenados no banco de dados, é necessário despejá-lo no sistema de arquivos usando cmsDumpExporter antes de atualizar o CMS (ou seja, com a versão antiga).

     

Você pode atualizar o CMS e redefinir o esquema do banco de dados executando:

cmsDropDB
cmsInitDB
     

Para carregar os dados anteriores de volta para o banco de dados, você pode usar cmsDumpImporter : ele irá adaptar o modelo de dados automaticamente (você pode usar cmsDumpUpdater para armazenar a versão atualizada de volta no disco e acelerar futuras importações).

    
por David Foerster 06.06.2017 / 12:39