Цей посібник покликано допомогти у збірці системи OpenSCADA з вихідних текстів. Протягом накопичення досвіду збірки на різних дистрибутивах ОС Linux та на інших платформах взагалі документ буде доповнюватися особливостями та деталями збірки у різноманітних оточеннях.
Документ також містить інформацію про попереднє налаштування зібраної системи OpenSCADA для повноцінного пуску з використанням демонстраційної БД (модель "АГЛКС"), яку постачається з вихідними текстами.
Увага. Для збірки OpenSCADA із вихідних текстів потрібен досвід збірки вільного ПЗ, а також базові знання у ОС Linux та використаного дистрибутиву Linux, що дозволить коректно задовольняти залежності та вирішувати можливі проблеми збірки.
Пряма збірка системи OpenSCADA
Збірка має виконуватися від ім'я звичайного користувача. При цьому будуть розглянуті варіанти встановлення та виконання як глобально у систему, так і локально, у директорію користувача. Приймаємо логін користувача - "user".
Перед збіркою входимо як звичайний користувач та підмінюємо login "user" на Ваш, визначаємося з джерелом вихідних текстів (ftp/http-сервер або SVN-репозиторій), способом встановлення (глобальний або локальний) та дотримуємося інструкції:
Етапи приготування дерева вихідних текстів до збірки:
Створення директорії для збірки проекту:
$ mkdir ~/projects; cd ~/projects
Завантаження пакету з вихідними текстами. Може бути виконана двома засобами:
отримання дерева вихідних текстів із 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.
тільки встановлення та пакування, із пакету rpm-утиліт etersoft (зручно під час налагодження openscada.spec файлу):
$ rpmbb -i Тека дистрибутиву/SPECS/openscada.spec
Пакети готові та доступні у теці Тека дистрибутиву/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:
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 з офіційного сайту та розпакувати його у створеній теці.
Потрібно вказати 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
Якщо у Вас немає підключення до інтернету, тоді потрібно завантажити тарбол вихідних текстів та ресурсів з ftp-серверу проекту та розташувати їх заздалегідь у теці вихідних текстів portage (/usr/portage/distfiles). Якщо ж у Вас є підключення до інтернету, тоді все потрібне для збірки буде отримано із сервера проекту автоматично.
Потрібно виставити необхідні Вам USE-прапорці, з якими буде зібрано OpenSCADA. Це можна зробити у файлі /etc/portage/package.use, наприклад:
Файли БД та ресурсів OpenSCADA готові та будуть розташовані у теці /var/spool/openscada/, виконувані файли - /usr/bin/, документація - /usr/share/doc/openscada-0.7.1/.