OpenSCADAWiki: Doc/СборкаИзИсходников ...

Home | Каталог | Изменения | Комментарии | Пользователи | Регистрация | Вход  Пароль:  
 
English (1 Кб) English
Ukrainian (1 Кб) Українська
 (2 Кб) Страница заморожена, актуальная тут.

Руководство по сборке OpenSCADA из исходных текстов


Оглавление

Введение

Данное руководство призвано помочь в сборке системы OpenSCADA из исходных текстов. По мере накопления опыта сборки на различных дистрибутивах ОС Linux и на других платформах вообще документ будет дополняться особенностями и деталями сборки в различных окружениях.


Документ также содержит информацию о предварительной настройке собранной системы OpenSCADA для полноценного пуска с использованием поставляемой с исходным текстом демонстрационной БД (модель "АГЛКС").


 (2 Кб) Для сборки OpenSCADA из исходных текстов требуется опыт сборки свободного ПО, а также базовые знания в ОС Linux и используемого дистрибутива Linux, что позволит корректно удовлетворять зависимости и решать возможные проблемы сборки.

Конфигурация OpenSCADA для сборки

Проектом 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.


По окончанию конфигурации будет сформирован сводный результат настроек, с помощью которого можно проверить желаемую конфигурацию.

Прямая сборка системы OpenSCADA

Сборка должна производится от имени обычного пользователя. При этом будут рассмотрены варианты установки и исполнения как глобально в систему, так и локально, в директории пользователя. Принимаем логин пользователя — "user".


Перед сборкой входим как обычный пользователь и подменяем login "user" на Ваш, определяемся с источником исходных текстов (ftp/http-сервер или SVN-репозиторий), способом установки (глобальный или локальный) и следуем инструкции:


Этапы подготовки дерева исходных текстов к сборке:

  1. Создание директории для сборки проекта:
    $ mkdir ~/projects; cd ~/projects
  2. Загрузка пакета с исходными текстами. Может быть произведена двумя способами:
    • загрузка тарбола исходных текстов и ресурсов с ftp-сервера проекта ftp://ftp.oscada.org/OpenSCADA и распаковка, например так:
      $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-0.8.0.tar.lzma
      $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-res-0.8.0.tar.lzma
      $ tar --lzma -xvf openscada-0.8.0.tar.lzma
      $ cd openscada-0.8.0
      $ tar --lzma -xvf ../openscada-res-0.8.0.tar.lzma
    • получение дерева исходных текстов из SVN-репозитория проекта:
      $ svn co svn://oscada.org/trunk/OpenSCADA
      $ cd OpenSCADA
  3. Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями.
  4. Генерация сборочной системы, при загрузке из SVN-репозитория:
    $ autoreconf -if

Этапы глобальной сборки:

  1. Конфигурация сборочный системы OpenSCADA:
    $ ./configure
  2. Сборка проекта OpenSCADA:
    $ make
  3. Установка OpenSCADA:
    $ su; make install
  4. Установка ряда файлов конфигурации и данных. Пропускаем для версий OpenSCADA >= 0.8.1!
    • Копирование скрипта запуска и конфигурационного файла демонстрации:
      $ cp data/ModelsDB/AGLKS/openscada_demo /usr/bin
      $ cp data/ModelsDB/AGLKS/oscada_AGLKS.xml /etc
    • Формирование директории с данными и заполнение её:
      $ mkdir /var/spool/openscada
      $ mkdir /var/spool/openscada/{DATA,icons,LibsDB,AGLKS}
      $ cp data/LibsDB/*.db /var/spool/openscada/LibsDB
      $ cp data/ModelsDB/AGLKS/*.db /var/spool/openscada/AGLKS
      $ cp data/icons/* /var/spool/openscada/icons
      $ install -m 777 -d /var/spool/openscada/ARCHIVES/{MESS,VAL}
  5. Система готова к запуску:
    $ exit; openscada_demo

Этапы локальной сборки:

  1. Конфигурация сборочный системы OpenSCADA:
    $ mkdir ~/OScadaW; ./configure --prefix=/home/user/OScadaW
  2. Сборка проекта OpenSCADA:
    $ make
  3. Установка OpenSCADA:
    $ make install
  4. Установка ряда файлов конфигурации и данных. Пропускаем для версий OpenSCADA >= 0.8.1!
    • Копирование скрипта запуска и конфигурационного файла демонстрации:
      $ cp data/ModelsDB/AGLKS/openscada_demo_local ~/OScadaW/bin/openscada_demo
      $ mkdir ~/OScadaW/etc
      $ cp data/ModelsDB/AGLKS/oscada_demo_local.xml ~/OScadaW/etc/oscada_demo.xml
    • Формирование директории с данными и заполнение её:
      $ mkdir ~/OScadaW/share/openscada
      $ mkdir ~/OScadaW/share/openscada/{DATA,icons,LibsDB,AGLKS}
      $ cp data/LibsDB/*.db ~/OScadaW/share/openscada/LibsDB
      $ cp data/ModelsDB/AGLKS/*.db ~/OScadaW/share/openscada/AGLKS
      $ cp data/icons/* ~/OScadaW/share/openscada/icons
      $ install -m 777 -d ~/OScadaW/share/openscada/ARCHIVES/{MESS,VAL}
  5. Система готова к запуску:
    $ cd ~/OScadaW/bin; ./openscada_demo

Сборка пакетов системы OpenSCADA для дистрибутива Linux

Redhat-based дистрибутивы - пакет RPM

Для сборки 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 пакетов нет, то её нужно создать командой:

$ install -m 755 -d Директория дистрибутива/{SPECS,SOURCES}

Этапы сборки по файлу спецификации RPM:

  1. Размещение архивов OpenSCADA и файла спецификации в директории сборки RPM (исходные файлы предварительно помещены в текущей директории):
    $ cp openscada-0.8.0.tar.lzma openscada-res-0.8.0.tar.lzma Директория дистрибутива/SOURCES
    $ cp openscada.spec Директория дистрибутива/SPECS
  2. Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями. Аргументы команды "configure" можно указать в файле "openscada.spec".
  3. Сборка пакетов
    • сборка сначала:
      $ rpmbuild -bb Директория дистрибутива/SPECS/openscada.spec
    • только установка и упаковка из пакета rpm-утилит etersoft (удобно при настройке openscada.spec файла):
      $ rpmbb -i Директория дистрибутива/SPECS/openscada.spec
  4. Пакеты готовы и доступны в директории Директория дистрибутива/RPMS для соответствующей архитектуры.

Этапы сборки из SRPMS пакета:

  1. Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями.
  2. Сборка пакетов (исходные файлы предварительно помещены в текущей директории):
    $ rpmbuild --rebuild openscada-0.8.0-1.src.rpm
  3. Пакеты готовы и доступны в директории Директория дистрибутива/RPMS для соответствующей архитектуры.

Debian-based дистрибутивы - пакет Deb

Для сборки Deb-пакетов OpenSCADA Вам понадобятся архивы исходных текстов и ресурсов, которые можно загрузить с ftp или http-сервера проекта.


Сборка Deb-пакетов производится в директории "debian" со скриптами сборки, которая содержится в архивах исходных текстов OpenSCADA.


Этапы сборки:

  1. Создание директории для сборки проекта:
    $ mkdir ~/build; cd ~/build
  2. Загрузка пакета с исходными текстами. Загрузка тарбола исходных текстов и ресурсов с ftp-сервера проекта ftp://ftp.oscada.org/OpenSCADA и распаковка, например так:
    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-0.8.0.tar.lzma
    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/openscada-res-0.8.0.tar.lzma
    $ tar --lzma -xvf openscada-0.8.0.tar.lzma
    $ cd openscada-0.8.0
    $ tar --lzma -xvf ../openscada-res-0.8.0.tar.lzma
  3. Выбор типа сборки:
    • бинарные файлы в одном пакете:
    $ ln -s openscada-0.8.0/data/debian openscada-0.8.0/debian
    • бинарные файлы модулей в отдельных пакетах:
    $ ln -s openscada-0.8.0/data/debian_mod openscada-0.8.0/debian
  4. Удовлетворение зависимостей проекта OpenSCADA для сборки в соответствии с требованиями. Аргументы команды "configure" можно указать в файле openscada-0.8.0/debian/rules.
  5. Переход в директорию OpenSCADA и запуск сборки:
    $ cd openscada-0.8.0
    • сборка сначала:
      $ dpkg-buildpackage -rfakeroot
    • пропустить сборку и переупаковать, удобно при отладке openscada-0.8.0/debian/rules:
      $ fakeroot debian/rules binary
      $ fakeroot debian/rules build
  6. Пакеты готовы и доступны в директории уровнем выше.

Gentoo - метадистрибутив

OpenSCADA не входит в официальное дерево portage Gentoo, поэтому сборка производится из оверлея. Подробно про работу с оверлеем можно найти на сайтах документации Gentoo, например: http://ru.gentoo-wiki.com/wiki/Portage_Overlay. Перед сборкой самого пакета OpenSCADA portage удовлетворит зависимости, т.е. соберет недостающие пакеты (если необходимо).


  1. Создание оверлея portage сводится к описанию пути для оверлейного дерева, т.е. в /etc/make.conf необходимо прописать строку:
    PORTDIR_OVERLAY="/usr/local/portage"
  2. Создать каталог /usr/local/portage/dev-util/openscada/, затем скачать файл архива ebuild c официального сайта и распаковать его в созданном каталоге.
    $ cd /usr/local/portage/dev-util/openscada
    $ wget ftp://ftp.oscada.org/OpenSCADA/0.8.0/Gentoo/openscada-0.8.0.ebuild.tar.gz
    $ tar -xzf openscada-0.8.0.ebuild.tar.gz
  3. Необходимо указать portage, что OpenSCADA разрешена для сборки на Вашей платформе. Для этого надо внести следующую строку в файл /etc/portage/package.keywords:
    dev-util/openscada
  4. Проверка:
    $ 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

  5. Если у Ваc нет подключения к интернету, то надо загрузить тарбол исходных текстов и ресурсов с ftp-сервера проекта и расположить их заранее в каталоге исходников portage (/usr/portage/distfiles). Если же у Вас есть подключение к интернету, то все необходимое для сборки будет взято с сервера проекта автоматически.
  6. Необходимо выставить нужные Вам USE-флаги, с которыми будет собрана OpenSCADA. Это можно сделать в файле /etc/portage/package.use, например:
    dev-util/openscada dcon demo http javalikecalc mysql qtcfg qtstarter ssl vision webcfg webcfgd webvision blockcalc dbarch dbase doc flibcomplex1 flibmath flibsys fsarch logiclev modbus serial sockets sqlite vcaengine
  7. Непосредственно сборка:
    $ emerge -q openscada
  8. Файлы БД и ресурсов OpenSCADA готовы и будут размещены в каталоге /var/spool/openscada/, исполняемые файлы - /usr/bin/, документация - /usr/share/doc/openscada-0.8.0/.

Ссылки

Страницы, ссылающиеся на данную: Doc
Doc/ModuleBuild


 
Один файл.[Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]