Руководство по сборке OpenSCADA из исходных текстов
Введение
Данное руководство призвано помочь в сборке системы OpenSCADA из исходных текстов. По мере накопления опыта сборки на различных дистрибутивах ОС Linux и на других платформах вообще документ будет дополняться особенностями и деталями сборки в различных окружениях.
Документ также содержит информацию о предварительной настройке собранной системы OpenSCADA для полноценного пуска с использованием поставляемой с исходным текстом демонстрационной БД (модель "АГЛКС").
Внимание. Для сборки OpenSCADA из исходных текстов требуется опыт сборки свободного ПО, а также базовые знания в ОС Linux и используемого дистрибутива Linux, что позволит корректно удовлетворять зависимости и решать возможные проблемы сборки.
Прямая сборка системы OpenSCADA
Сборка должна производится от имени обычного пользователя. При этом будут рассмотрены варианты установки и исполнения как глобально в систему, так и локально, в директории пользователя. Принимаем логин пользователя - "user".
Перед сборкой входим как обычный пользователь и подменяем login "user" на Ваш, определяемся с источником исходных текстов (ftp/http-сервер или SVN-репозиторий), способом установки (глобальный или локальный) и следуем инструкции:
Этапы подготовки дерева исходных текстов к сборке:
Создание директории для сборки проекта:
$ mkdir ~/projects; cd ~/projects
Загрузка пакета с исходными текстами. Может быть произведена двумя способами:
загрузка тарбола исходных текстов и ресурсов с ftp-сервера проекта ftp://ftp.oscada.org/OpenSCADA/ и распаковка, например так:
получение дерева исходных текстов из SVN-репозитория проекта:
$ svn co svn://oscada.org/trunk/OpenSCADA
$ cd OpenSCADA
Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями. Исключение зависимостей, в случае невозможности их удовлетворения, путём отключения сборки ненужных модулей опцией --disable-{ModName} к команде "configure" ниже, например: --disable-SoundCard.
Генерация сборочной системы, при загрузке из SVN-репозитория:
$ autoreconf -ivf
Этапы глобальной сборки:
Конфигурация сборочный системы OpenSCADA:
$ ./configure
Сборка проекта OpenSCADA:
$ make
Установка OpenSCADA:
$ su; make install
Копирование скрипта запуска и конфигурационного файла демонстрации:
Сборка пакетов системы OpenSCADA для дистрибутива Linux
Redhat-based дистрибутивы - пакет RPM
Для сборки RPM-пакетов OpenSCADA Вам понадобятся архивы исходных текстов, ресурсов и файл спецификации RPM пакета (openscada.spec, openscada_mod.spec) или же SRPM-пакет всех этих исходных материалов (openscada-0.7.1-2.src.rpm), которые можно загрузить с ftp или http-сервера проекта.
Файл спецификации RPM-пакетов и SRPM-пакет могут отличаться для разных дистрибутивов Linux, учитывая их особенности, поэтому нужно стараться загружать их в соответствии с дистрибутивом. Если специальный SRPM пакет отсутствует, то можно попробовать собрать из унифицированного файла спецификации в основном SRPM пакете.
Сборка RPM-пакетов производится в директории со специальной структурой, которая обычно создаётся при установке соответствующего пакета дистрибутива (например: rpm-build). Эта директория в зависимости от дистрибутива располагается в домашней директории пользователя или в директории /usr/src. Известные факты расположения директории сборки RPM-пакетов различных дистрибутивов:
Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями. Исключение зависимостей в случае невозможности их удовлетворения путём отключения сборки ненужных модулей опцией --disable-{ModName} к команде "configure" в файле "openscada.spec", например: --disable-SoundCard.
Пакеты готовы и доступны в директории Директория дистрибутива/RPMS для соответствующей архитектуры.
Этапы сборки из SRPMS пакета:
Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями.
Сборка пакетов (исходные файлы предварительно помещены в текущей директории):
$ rpmbuild --rebuild openscada-0.7.1-2.src.rpm
Пакеты готовы и доступны в директории Директория дистрибутива/RPMS для соответствующей архитектуры.
Debian-based дистрибутивы - пакет Deb
Для сборки Deb-пакетов OpenSCADA Вам понадобятся архивы исходных текстов и ресурсов, которые можно загрузить с ftp или http-сервера проекта.
Сборка Deb-пакетов производится в директории "debian" со скриптами сборки, которая содержится в архивах исходных текстов OpenSCADA.
Этапы сборки:
Создание директории для сборки проекта:
$ mkdir ~/build; cd ~/build
Загрузка пакета с исходными текстами. Загрузка тарбола исходных текстов и ресурсов с ftp-сервера проекта ftp://ftp.oscada.org/OpenSCADA/ и распаковка, например так:
Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями. Исключение зависимостей в случае невозможности их удовлетворения путём отключения сборки ненужных модулей опцией --disable-{ModName} к команде "configure" в файле openscada-0.7.1/debian/rules, например: --disable-SoundCard.
Переход в директорию OpenSCADA и запуск сборки:
$ cd openscada-0.7.1
сборка сначала:
$ dpkg-buildpackage -rfakeroot
пропустить сборку и переупаковать, удобно при отладке openscada-0.7.1/debian/rules:
Пакеты готовы и доступны в директории уровнем выше.
Gentoo - метадистрибутив
OpenSCADA не входит в официальное дерево portage Gentoo, поэтому сборка производится из оверлея. Подробно про работу с оверлеем можно найти на сайтах документации Gentoo, например: http://ru.gentoo-wiki.com/wiki/Portage_Overlay. Перед сборкой самого пакета OpenSCADA portage удовлетворит зависимости, т.е. соберет недостающие пакеты (если необходимо).
Создание оверлея portage сводится к описанию пути для оверлейного дерева, т.е. в /etc/make.conf необходимо прописать строку:
PORTDIR_OVERLAY="/usr/local/portage"
Создать каталог /usr/local/portage/dev-util/openscada/, затем скачать файл архива ebuild c официального сайта и распаковать его в созданном каталоге.
Необходимо указать portage, что OpenSCADA разрешена для сборки на Вашей платформе. Для этого надо внести следующую строку в файл /etc/portage/package.keywords:
dev-util/openscada
Проверка:
$ emerge -vp openscada These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ~] dev-util/openscada-0.7.1 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
Если у Ваc нет подключения к интернету, то надо загрузить тарбол исходных текстов и ресурсов с ftp-сервера проекта и расположить их заранее в каталоге исходников portage (/usr/portage/distfiles). Если же у Вас есть подключение к интернету, то все необходимое для сборки будет взято с сервера проекта автоматически.
Необходимо выставить нужные Вам USE-флаги, с которыми будет собрана OpenSCADA. Это можно сделать в файле /etc/portage/package.use, например:
Файлы БД и ресурсов OpenSCADA готовы и будут размещены в каталоге /var/spool/openscada/, исполняемые файлы - /usr/bin/, документация - /usr/share/doc/openscada-0.7.1/.