Как мне установить 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. Например:
- Ubuntu 14.x: python-virtualenv.
- Ubuntu 16.x: virtualenv.
После того, как вы установили
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
сохранить обновленную версию обратно на диск и ускорить будущий импорт).