Установка сервера NSUts для ОС Windows с использованием Denwer описана здесь.
nsuts-db используется для развертывания, обновления, удаления базы данных
nsuts содержит исполняемые скрипты приложения и статический контент.
Для работы сервера системы тестирования необходим установленный веб-сервер apache2 с модулем mod_perl и интерпретатором perl версии >= 5.10, СУБД My SQL, утилиты zip, unzip, diff и некоторые другие. Некоторые модули языка perl из архива CPAN. Полный список зависимостей имеется в метаинформации пакетов nsuts-db и nsuts.
Для установки deb-пакетов, используя dpkg, необходимо в командной строке от пользователя root ввести: dpkg -i <имя_файла_пакета>. При использовании этой команды подразумевается, что все пакеты, от которых зависит данный пакет, уже установлены. В противном случае после выполнения данной команды необходимо исправить неудовлетворенные зависимости командой: apt-get -f install.
При первой установке пакетов nsuts-db необходимо запустить скрипт /usr/sbin/nsuts-db-setup, который позволяет сконфигурировать подключение к БД. Настройки подключения будут сохранены в файле /etc/nsuts/nsuts_new_db.cfg. При последующем обновлении пакета nsuts-db эти настройки будут использоваться для обновления БД.
После установки пакета nsuts-db необходимо выполнить установку пакета nsuts вышеприведенным способом.
В процессе установки пакета nsuts создаются необходимые для работы сервера директории в /var/filebase/ и временные директории в /tmp/htmlcache/. Для удаления созданных в процессе работы сервера файлом используется скрипт /usr/sbin/nsuts-fb-remove
После корректного завершения установки обоих пакетов стартовая страница системы тестирования NSUts будет доступна по адресу http://<SERVER>:82/nsuts-cgi/
Upd: начиная с версии nsuts-1.2.7 стартовая страница доступна по адресу http://<SERVER>/nsuts/
Примечание: Необходимо проверить, что доступ к базе данных для тестирующего клиента открыт (например, установить параметр bind-address=0.0.0.0 в файле /etc/mysql/my.cnf).
Чтобы удалить пакеты вместе с конфигурационными файлами используется оператор purge.
Примечание: Если необходимо выполнить удаление всех данных из БД mysql, созданных в процессе установки и использования системы тестирования, можно воспользоваться скриптом /usr/sbin/nsuts-db-remove.
Последовательность действий для полного удаления сервера NSUts имеет следующий вид:
Замечание (для nsuts-1.2.6): при использовании порта, отличного от 80 (в файле конфигурации пакета nsuts прописан порт 82) необходимо указать используемый порт в ports.conf.
Upd: Начиная с версии nsuts-1.2.7 дополнительные настройки не требуются :-)
Также необходимо наличие интерпретатора perl версии >=5.10.
В процессе работы установщика нужно в разделе «Выбор директории установки» указать базовую директорию для установки NSUtsClient.
Внимание: базовая директория NSUtsClient не должна содержать пробелов (в пути).
В результате установки по указанной в установщике директории будет создан каталог NSUtsClient с вложенными подкаталогами checker/, compiler/, perl/. При этом текущий пользователь должен иметь права на чтение/запись в каталог checker/TEST/.
Простая установка позволяет использовать тестирующий клиент, но не включает в себя дополнительные действия по обеспечению безопасности работы приложения и ОС, на которой запущен клиент.
Внимание: для использования этой опции необходимы права администратора!
В процессе работы установщика нужно ввести имя и пароль нового пользователя в разделе «Выбор пользователя NSUtsClient», а также в разделе «Выбор директории установки» указать базовую директорию для установки NSUtsClient.
Внимание: базовая директория NSUtsClient не должна содержать пробелов (в пути).
Поскольку используемая для запуска приложений изолирующая среда (Winkill) не обеспечивает полной изоляции запускаемых приложений, может понадобится выполнить дополнительные операции по обеспечению безопасности работы системы:
В качестве примера такого bat-файла приложен файл gcc.bat. Данный bat-файл использует для компиляции компилятор, распаковынный в директорию .\checker\gcc-4.4.3\
Описание параметров, передаваемые bat-файлу:
Для того, чтобы иметь возможность использовать компилятор на сервере системы тестирования, необходимо добавить запись об этом компиляторе на странице «Лог» -> "Языки / Компиляторы", причем идентификатор компилятора («Id») должен совпадать с указанным значением в списке supported файла checker\tester2.cfg.
Для того, чтобы иметь возможность использовать компилятор в туре олимпиады необходимо указать его в списке доступных компиляторов на странице «Настройка».
fbauth – строка использующаяся для авторизации тестирующего клиента. Должна совпадать со значением парамнтра authstr в файле /etc/nsuts/nsuts_new_get.cfg на сервере.
fburl – url скрипта http://<SERVER>/<PATH-TO>/nsuts_new_get2.cgi. В версии 1.2.7 по-умолчанию будет иметь вид http://<SERVER>/nsuts/nsuts_new_get2.cgi, где <SERVER> – адрес сервера.
[database] – группа параметров, указывающая настройки подключения к базе данным. Настройки должны коррелировать с настройками, указанными на сервере в файле /etc/nsuts/nsuts_new_db.cfg
sleep – интервал между подключениями к базе данных при холостом цикле в секундах.
supported – список идентификаторов поддерживаемых клиентом компиляторов. Значения должны быть разделены запятой.
include_tasks – список идентификаторов задач, тестируемых этим клиентом. Используется для проверки задач, требующих специальной настройки тестирующего клиента.