OpenSCADAWiki: Home Page Uk/Doc/ Build From Source ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Doc/BuildFromSource from 2012-01-29 21:21:20..
English (1 Kb) English version
Russian (1 Kb) Русская версия?

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


Contents

Вступ

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


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


Увага. Для збірки OpenSCADA із вихідних текстів потрібен досвід збірки вільного ПЗ, а також базові знання у ОС Linux та використаного дистрибутиву Linux, що дозволить коректно задовольняти залежності та вирішувати можливі проблеми збірки.

Пряма збірка системи OpenSCADA

Збірка має виконуватися від ім'я звичайного користувача. При цьому будуть розглянуті варіанти встановлення та виконання як глобально у систему, так і локально, у директорію користувача. Приймаємо логін користувача - "user".


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


Етапи приготування дерева вихідних текстів до збірки:

  1. Створення директорії для збірки проекту:
    $ mkdir ~/projects; cd ~/projects
  2. Завантаження пакету з вихідними текстами. Може бути виконана двома засобами:
  3. Задоволення залежностей проекту OpenSCADA для збірки у відповідності з вимогами. Виключення залежностей, у випадку неможливості їх задоволення, шляхом виключення збірки непотрібних модулів опцією --disable-{ModName} до команди "configure" нижче, наприклад: --disable-SoundCard.
  4. Генерація збіркової системи, при завантажені із SVN-репозиторія:
    $ autoreconf -ivf

Етапи глобальної збірки:

  1. Конфігурація збіркової системи OpenSCADA:
    $ ./configure
  2. Збірка проекту OpenSCADA:
    $ make
  3. Встановлення OpenSCADA:
    $ su; make install
  4. Копіювання скрипту запуску та конфігураційного файлу демонстрації:
    $ cp data/ModelsDB/AGLKS/openscada_demo /usr/bin
    $ cp data/ModelsDB/AGLKS/oscada_AGLKS.xml /etc
  5. Формування директорії з даними та заповнення її:
    $ 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}
  6. Система готова до запуску:
    $ exit; openscada_demo

Етапи локальної збірки:

  1. Конфігурація збіркової системи OpenSCADA:
    $ mkdir ~/OScadaW; ./configure --prefix=/home/user/OScadaW
  2. Збірка проекту OpenSCADA:
    $ make
  3. Встановлення OpenSCADA:
    $ make install
  4. Копіювання скрипту запуску та конфігураційного файлу демонстрації:
    $ 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
  5. Формування директорії з даними та заповнення її:
    $ 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}
  6. Система готова до запуску:
    $ cd ~/OScadaW/bin; ./openscada_demo

Збірка пакетів системи 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-пакетів різних дистрибутивів:


Якщо, після встановлення спеціалізованого пакету, теки створення RPM пакетів немає тоді її потрібно створити командою:

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

Етапи збірки по файлу специфікації RPM:

  1. Розташування архівів OpenSCADA та файлу специфікації у теці збірки RPM (вихідні файли попередньо розташовано у поточній теці):
    $ cp openscada-0.7.1.tar.lzma openscada-res-0.7.1.tar.lzma Тека дистрибутиву/SOURCES
    $ cp openscada.spec Тека дистрибутиву/SPECS
  2. Задоволення залежностей проекту OpenSCADA для збірки у відповідності із вимогами. Виключення залежностей, у випадку неможливості їх задоволення, шляхом виключення збірки непотрібних модулів опцією --disable-{ModName} до команди "configure" у файлі "openscada.spec", наприклад: --disable-SoundCard.
  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.7.1-2.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.7.1/openscada-0.7.1.tar.lzma
    $ wget ftp://ftp.oscada.org/OpenSCADA/0.7.1/openscada-res-0.7.1.tar.lzma
    $ tar --lzma -xvf openscada-0.7.1.tar.lzma
    $ cd openscada-0.7.1
    $ tar --lzma -xvf ../openscada-res-0.7.1.tar.lzma
  3. Задоволення залежностей проекту OpenSCADA для збірки у відповідності із вимогами. Виключення залежностей, у випадку неможливості їх задоволення, шляхом виключення збірки непотрібних модулів опцією --disable-{ModName} до команди "configure" у файлі openscada-0.7.1/debian/rules, наприклад: --disable-SoundCard.
  4. Перехід у теку OpenSCADA та запуск збірки:
    $ cd openscada-0.7.1
    • збірка з початку:
      $ dpkg-buildpackage -rfakeroot
    • пропустити збірку та переупакувати, зручно під час налагодження openscada-0.7.1/debian/rules:
      $ fakeroot debian/rules binary
      $ fakeroot debian/rules build
  5. Пакети готові та доступні у теці рівнем вище.

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.7.1/Gentoo/openscada-0.7.1.ebuild-010611.tar.gz
    $ tar -xzf openscada-0.7.1.ebuild-010611.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.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

  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.7.1/.

Посилання

Referring pages: HomePageUk/Doc
HomePageUk/Doc/ModuleBuild


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]