Данное руководство призвано помочь в сборке системы OpenSCADA из исходных текстов. По мере накопления опыта сборки на различных дистрибутивах ОС Linux и на других платформах вообще документ будет дополняться особенностями и деталями сборки в различных окружениях.
Документ также содержит информацию о предварительной настройке собранной системы OpenSCADA для полноценного пуска с использованием поставляемой с исходным текстом демонстрационной БД (модель "АГЛКС").
Внимание. Для сборки OpenSCADA из исходных текстов требуется опыт сборки свободного ПО, а также базовые знания в ОС Linux и используемого дистрибутива Linux, что позволит корректно удовлетворять зависимости и решать возможные проблемы сборки.
Проектом OpenSCADA, в качестве сборочной системы, используется набор утилит AutoTools. Любой сборке проекта под управлением "AutoTools" предшествует стадия конфигурации, а иногда и формирования сборочной системы под окружение ОС. Стадия конфигурации, как и непосредственно сборка, осуществляется всегда и не зависит от того осуществляется это прямая сборка или сборка пакета.
Для формирования сборочной системы должны быть установлены утилиты "AutoTools": "autoconf", "automake" и "libtool". Общее формирование можно произвести командой "$ autoreconf -if". Ранее сформированную сборочную систему иногда может потребоваться переформировать, например, в случае значительного различия окружения ОС на которой сборочная система формировалась и текущей. Переформирование сборочной системы осуществляется ранее указанной командой формирования.
Конфигурация сборочной системы осуществляется вызовом команды "$ configure". Посредством указания аргументов к этой команде можно включить/выключить функцию или модуль OpenSCADA при сборке. Получить весь список доступных параметров конфигурации и модулей OpenSCADA можно указав аргумент --help.
Включение и выключение модулей OpenSCADA осуществляется передачей аргументов --enable-{ModName} и --disable-{ModName}. Для выбора модулей можно указать политику "Включить все модули" --enable-AllModuls или "Выключить все модули" --disable-AllModuls, а далее включать/выключать отдельные модули, в зависимости от того что будет проще. Модули OpenSCADA можно влинковывать (встраивать) прямо в библиотеку ядра OpenSCADA, а не собирать отдельной библиотекой, для чего нужно указать аргумент --enable-{ModName}=incl.
В результате конфигурации будет сформирована таблица сводных настроек, с помощью которой можно проверить желаемую конфигурацию.
Сборка должна производится от имени обычного пользователя. При этом будут рассмотрены варианты установки и исполнения как глобально в систему, так и локально, в директории пользователя. Принимаем логин пользователя - "user".
Перед сборкой входим как обычный пользователь и подменяем login "user" на Ваш, определяемся с источником исходных текстов (ftp/http-сервер или SVN-репозиторий), способом установки (глобальный или локальный) и следуем инструкции:
Этапы подготовки дерева исходных текстов к сборке:
Этапы глобальной сборки:
Этапы локальной сборки:
Для сборки RPM-пакетов OpenSCADA Вам понадобятся архивы исходных текстов, ресурсов и файл спецификации RPM пакета (openscada.spec, openscada_mod.spec) или же SRPM-пакет всех этих исходных материалов (openscada-0.8.0-1.src.rpm), которые можно загрузить с ftp или http-сервера проекта.
Файл спецификации RPM-пакетов и SRPM-пакет могут отличаться для разных дистрибутивов Linux, учитывая их особенности, поэтому нужно стараться загружать их в соответствии с дистрибутивом. Если специальный SRPM пакет отсутствует, то можно попробовать собрать из унифицированного файла спецификации в основном SRPM пакете.
Сборка RPM-пакетов производится в директории со специальной структурой, которая обычно создаётся при установке соответствующего пакета дистрибутива (например: rpm-build). Эта директория в зависимости от дистрибутива располагается в домашней директории пользователя или в директории /usr/src. Известные факты расположения директории сборки RPM-пакетов различных дистрибутивов:
Если после установки специализированного пакета директории создания RPM пакетов нет, то её нужно создать командой:
Этапы сборки по файлу спецификации RPM:
Этапы сборки из SRPMS пакета:
Для сборки Deb-пакетов OpenSCADA Вам понадобятся архивы исходных текстов и ресурсов, которые можно загрузить с ftp или http-сервера проекта.
Сборка Deb-пакетов производится в директории "debian" со скриптами сборки, которая содержится в архивах исходных текстов OpenSCADA.
Этапы сборки:
OpenSCADA не входит в официальное дерево portage Gentoo, поэтому сборка производится из оверлея. Подробно про работу с оверлеем можно найти на сайтах документации Gentoo, например: http://ru.gentoo-wiki.com/wiki/Portage_Overlay. Перед сборкой самого пакета OpenSCADA portage удовлетворит зависимости, т.е. соберет недостающие пакеты (если необходимо).
$ emerge -vp openscada
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ~] dev-util/openscada-0.8.0 USE="mysql ssl -bfn -blockcalc -daqgate -dbarch -dbase -dcon -demo -diamondboards -doc (-firebird) -flibcomplex1 -flibmath -flibsys -fsarch -http -icp_das -javalikecalc -logiclev -modbus -portaudio -qtcfg -qtstarter -selfsystem -serial -simens -snmp -sockets -sqlite -system -systemtest -vcaengine -vision -webcfg -webcfgd -webvision" 79,647 kB [1]
Total: 1 package (1 reinstall), Size of downloads: 79,647 kB
Portage tree and overlays:
[0] /usr/portage
[1] /usr/local/portage