OpenSCADAWiki: Home Page Uk/Doc/ Build From Source
 
English (1 Kb) English
Russian (1 Kb) Российский

 (2 Kb) Сторінку заморожено, актуальна тут.

Посібник по збірці OpenSCADA з вихідних текстів


Contents

Вступ

Цей посібник покликано допомогти у збірці системи OpenSCADA з вихідних текстів. Протягом накопичення досвіду збірки на різних дистрибутивах ОС Linux та на інших платформах взагалі документ буде доповнюватися особливостями та деталями збірки у різноманітних оточеннях.

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

 (2 Kb) Для збірки 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 -ivf

Етапи глобальної збірки:
  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 з офіційного сайту та розпакувати його у створеній теці.
    $ 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. Якщо у Вас немає підключення до інтернету, тоді потрібно завантажити тарбол вихідних текстів та ресурсів з 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/.

Посилання

Referring pages: HomePageUk/Doc
HomePageUk/Doc/ModuleBuild