Как мне установить CMS (систему управления контестами) в Ubuntu 16.04?

Я пытаюсь настроить CMS (которую можно найти здесь) на Ubuntu 16.04 32bit.
Я полный нуб, когда дело доходит до Ubuntu, поэтому я хотел бы спросить вас, ребята и девочки, если кто-то может помочь мне через это, я был бы очень благодарен.
Также, пожалуйста, не могли бы вы предоставить много деталей от А до Я, потому что я не думаю, что смогу решить проблему самостоятельно, когда дело доходит до Ubuntu.

1 ответ

Скопировано прямо из официальной инструкции по установке:

Монтаж

Зависимости и доступные компиляторы

[...]

Ubuntu

В Ubuntu 16.04 необходимо выполнить следующий скрипт, чтобы удовлетворить все зависимости:

# Feel free to change OpenJDK packages with your preferred JDK.
sudo apt-get install build-essential openjdk-8-jre openjdk-8-jdk fpc postgresql postgresql-client gettext python2.7 iso-codes shared-mime-info stl-manual cgroup-lite

# Only if you are going to use pip/virtualenv to install python dependencies
sudo apt-get install python-dev libpq-dev libcups2-dev byaml-dev libffi-dev python-pip

# Optional
sudo apt-get install nginx-full php7.0-cli php5-fpm phppgadmin texlive-latex-base a2ps gcj-jdk haskell-platform

Подготовительные этапы

Загрузите CMS 1.3.rc0 с GitHub в виде архива, а затем распакуйте его в своей файловой системе. Затем вы должны получить доступ к папке cms с помощью терминала.

Предупреждение: если вы решили git clone хранилище вместо загрузки архива, и вы не использовали --recursive Опция при клонировании, то вам нужно выполнить следующую команду для получения исходного кода песочницы:

git submodule update --init

Для запуска CMS необходимо выполнить несколько подготовительных шагов (например, установить песочницу, скомпилировать файлы локализации, создать cmsuser, и так далее). Вы можете сделать все эти шаги вручную или выполнить следующую команду:

sudo ./prerequisites.py install

Этот скрипт добавит вас в cmsuser группа, если вы ответите Y когда спросили Если вы хотите управлять своими группами самостоятельно, ответьте N и затем запустите:

sudo usermod -a -G cmsuser <your user>

Вы можете подтвердить, что находитесь в группе, введя команду:

groups

Не забудьте выйти из системы, чтобы изменения вступили в силу.

Предупреждение: пользователи в группе cmsuser сможет запустить isolate программа с правами root. Они могут использовать это для получения привилегий root. В таком случае обязательно, чтобы ни один недоверенный пользователь не был допущен в группу. cmsuser,

Установка CMS и ее зависимостей Python

Существует несколько способов установить CMS и ее зависимости от Python:

Метод 1: Глобальная установка с pip

Есть веские причины устанавливать CMS и ее зависимости от Python через pip (Python Package Index) вместо вашего менеджера пакетов (например, apt-get). Например: два разных дистрибутива Linux (или две разные версии одного дистрибутива) могут предлагать две разные версии python-sqlalchemy, При использовании pip вы можете установить конкретную версию sqlalchemy это, как известно, работает правильно с CMS.

Если у вас есть pip установлен, вы можете сделать это:

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

Эта команда устанавливает глобальные зависимости python. Обратите внимание, что в некоторых дистрибутивах, таких как Arch Linux, это может мешать работе системного менеджера пакетов. Если вы хотите выполнить установку в своей домашней папке, вы можете сделать это:

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

Способ 2: виртуальная среда

Предупреждение. Альтернативный метод установки - использование виртуальной среды, которая представляет собой изолированную среду Python, которую вы можете поместить в любое удобное для вас место и которая может быть активирована / деактивирована по желанию. Инструмент, необходимый для создания виртуальной среды, называется virtualenvи может быть установлен, ища virtualenv используя менеджер пакетов вашего дистрибутива Linux. Например:

После того, как вы установили virtualenvвам нужно будет создать виртуальную среду где-нибудь в вашей файловой системе. Например, предположим, что вы решили создать его в своем домашнем каталоге (как ~/cms_venv):

virtualenv -p python2 ~/cms_venv

Чтобы активировать его:

source ~/cms_venv/bin/activate

После активации pip Команда всегда будет доступна (даже если она не была доступна глобально, например, потому что вы ее не устанавливали). В общем, каждая команда python (python, pip) ссылается на соответствующую виртуальную версию. Итак, вы можете установить зависимости Python, выполнив:

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

Примечание. Как только вы закончили использовать CMS, вы можете деактивировать виртуальную среду, выполнив:

 deactivate

Метод 3: Использование apt-get на Ubuntu

Предупреждение. Обычно можно установить зависимости python с помощью диспетчера пакетов вашего дистрибутива Linux. Однако имейте в виду, что версия каждого пакета контролируется менеджерами пакетов и может быть слишком новой или слишком старой для CMS. В Ubuntu это обычно не так, поскольку мы пытаемся использовать пакеты python, доступные для текущей версии LTS.

Чтобы установить CMS и ее зависимости от Python в Ubuntu, вы можете выполнить:

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

Запуск CMS не установлен

Чтобы запустить CMS без установки его в систему, сначала необходимо создать необходимые условия:

./prerequisites.py build

В этом случае есть еще несколько шагов, которые необходимо выполнить вручную. Сначала добавьте CMS, изолируйте путь и создайте файлы конфигурации:

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

Во-вторых, выполните эти задачи (которые требуют прав root):

  • создать cmsuser пользователь и группа с тем же именем;
  • добавьте своего пользователя в cmsuser группа;
  • установите isolate для владельца root:cmsuser и установите его suid-бит.

Например:

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

Обновление CMS

По мере развития CMS схема базы данных, которую она использует для представления своих данных, может обновляться, и новые версии могут вносить изменения, несовместимые со старыми версиями.

Чтобы сохранить данные, хранящиеся в базе данных, вам нужно сбросить их в файловой системе, используя cmsDumpExporter перед обновлением CMS (т.е. со старой версией).

Затем вы можете обновить CMS и сбросить схему базы данных, выполнив:

cmsDropDB
cmsInitDB

Для загрузки предыдущих данных обратно в базу данных вы можете использовать cmsDumpImporter: он автоматически адаптирует модель данных на лету (вы можете использовать cmsDumpUpdater сохранить обновленную версию обратно на диск и ускорить будущий импорт).

Другие вопросы по тегам