Данное руководство призвано помочь в сборке OpenSCADA из исходных текстов. По мере накопления опыта сборки OpenSCADA на различных дистрибутивах ОС Linux и других платформах вообще, документ будет дополняться особенностями и деталями сборки в различных окружениях.
На последних версиях OpenSCADA, предварительная настройка собранной программы не нужна, в случае использования при сборке пакета с ресурсами "openscada-res" или дерева исходных текстов из репозитория SVN, даже после прямой сборки. Поэтому сразу после сборки и установки программа готова к использованию!
Для сборки 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.
По окончанию конфигурации будет сформирован сводный результат настроек, с помощью которого можно проверить желаемую конфигурацию.
Перед сборкой нужно определиться с источником исходных текстов, ftp/http-сервер или SVN-репозиторий, и ветвью OpenSCADA, которую Вы будете собирать. Поскольку LTS ветвь автоматически собирается для многих дистрибутивов Linux, редко обновляется и её версия меняется с выпуском новой LTS, то в этом руководстве рассмотрим сборку рабочей ветви (Work) которая, в свою очередь, автоматически собирается для ограниченного круга Linux дистрибутивов, часто меняется и её адрес всегда одинаков. Сборка LTS ветви, как правило, осуществляется также и в инструкции нужно "Work" заменить на версию LTS, а также изменить название пакета исходных текстов. В целом, к названиям пакетов и каталогов нужно относиться внимательно поскольку они, версия от версии, могут отличаться!
Сборка должна производится от имени обычного пользователя, хотя для изолированных окружений может и от суперпользователя. При этом будут рассмотрены варианты установки и исполнения как глобально — в систему, так и локально — в директории пользователя. Принимаем логин (учётную запись) пользователя — "user".
Входим как обычный пользователь и заменяем учётную запись "user" на Вашу, определяемся со способом установки (глобальный или локальный) и следуем инструкции:
Этапы подготовки дерева исходных текстов к сборке:
Этапы глобальной сборки:
Этапы локальной сборки:
Для сборки RPM-пакетов OpenSCADA Вам понадобятся архивы исходных текстов, ресурсов и файл спецификации RPM пакета (openscada.spec, openscada_mod_ALT.spec, openscada_mod_RH.spec) или же SRPM-пакет всех этих исходных материалов.
Файл спецификации RPM-пакетов и SRPM-пакет могут отличаться для разных дистрибутивов Linux, учитывая их особенности, поэтому нужно стараться загружать их в соответствии с дистрибутивом. Если специальный SRPM пакет отсутствует то можно попробовать собрать из унифицированного файла спецификации (openscada.spec) в основном SRPM пакете или пакете ресурсов.
Сборка RPM-пакетов производится в директории со специальной структурой, которая обычно создаётся при установке соответствующего пакета дистрибутива (например: rpm-build). Эта директория, в зависимости от дистрибутива, располагается в домашней директории пользователя или в директории /usr/src. Известные факты расположения директории сборки RPM-пакетов различных дистрибутивов:
Если после установки специализированного пакета директории создания RPM пакетов нет то её нужно создать командой:
Этапы сборки по файлу спецификации RPM:
Этапы сборки из SRPMS пакета:
Для сборки DEB-пакетов OpenSCADA Вам понадобятся архивы исходных текстов и ресурсов.
Сборка DEB-пакетов производится в директории "debian" со скриптами сборки, которая содержится в архивах исходных текстов OpenSCADA.
Этапы сборки:
OpenSCADA не входит в официальное дерево portage Gentoo, поэтому сборка производится из оверлея. Перед сборкой самого пакета OpenSCADA, portage удовлетворит зависимости, т.е. соберет недостающие пакеты (если необходимо).
$ emerge -vp openscada These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ~] dev-util/openscada-0.9 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
Областью применения менеджера пакетов и пакетов IPKG в основном являются встраиваемые окружения Linux с ограниченным объёмом памяти вроде роутеров беспроводных сетей. Соответственно и сборка пакетов IPKG является частью сборочных систем таких окружений, и описание этой процедуры не можно рассматривать отдельно от самой сборочной системы, поэтому на предмет создания IPKG пакетов OpenSCADA читайте в разделе "Дистрибутив OpenWRT" под-проекта "Общее встраивание OpenSCADA и программированные логические контроллеры (ПЛК)".
Операционная система Android является программным окружением на основе ядра Linux, которое в основном предназначено и используется на мобильных телефонах, смартфонах, планшетах и другом оборудовании с сенсорным экраном. Стороннее программное обеспечение для Android распространяется в виде APK-пакетов, сборку которого невозможно рассмотреть в отрыве от сборочного окружения Android SDK, NDK и сборки всех зависимостей OpenSCADA, поэтому на предмет сборки OpenSCADA и создания её APK-пакетов читайте в под-проекте "Адаптация OpenSCADA к платформе Android".
Documents/How_to/Build_from_source/ru - GFDL | July 2021 | OpenSCADA 0.9.4 |