Цей посібник покликано допомогти у збірці системи OpenSCADA з вихідних текстів. Протягом накопичення досвіду збірки на різних дистрибутивах ОС Linux та на інших платформах взагалі документ буде доповнюватися особливостями та деталями збірки у різноманітних оточеннях.
Документ також містить інформацію про попереднє налаштування зібраної системи OpenSCADA для повноцінного пуску з використанням демонстраційної БД (модель "АГЛКС"), яку постачається з вихідними текстами.
Пряма збірка системи 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 CFLAGS="-O2" CXXFLAGS="-O2"
Збірка проекту 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/.