Цей посібник покликано допомогти у збірці системи OpenSCADA з вихідних текстів. Протягом накопичення досвіду збірки на різних дистрибутивах ОС Linux та на інших платформах взагалі документ буде доповнюватися особливостями та деталями збірки у різноманітних оточеннях.
Документ також містить інформацію про попереднє налаштування зібраної системи OpenSCADA для повноцінного пуску з використанням демонстраційної БД (модель "АГЛКС"), яку постачається з вихідними текстами.
Увага. Для збірки OpenSCADA із вихідних текстів потрібен досвід збірки вільного ПЗ, а також базові знання у ОС Linux та використаного дистрибутиву Linux, що дозволить коректно задовольняти залежності та вирішувати можливі проблеми збірки.
Проектом 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.
у результаті конфігурації буде сформовано таблицю зведених налаштувань, за допомогою яких можна перевірити бажану конфігурацію.
Збірка має виконуватися від ім'я звичайного користувача. При цьому будуть розглянуті варіанти встановлення та виконання як глобально у систему, так і локально, у директорію користувача. Приймаємо логін користувача - "user".
Перед збіркою входимо як звичайний користувач та підмінюємо login "user" на Ваш, визначаємося з джерелом вихідних текстів (ftp/http-сервер або SVN-репозиторій), способом встановлення (глобальний або локальний) та дотримуємося інструкції:
Етапи приготування дерева вихідних текстів до збірки:
Етапи глобальної збірки:
Етапи локальної збірки:
Для збірки 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 пакетів немає тоді її потрібно створити командою:
Етапи збірки по файлу специфікації RPM:
Етапи збірки із SRPMS пакету:
Для збірки Deb-пакетів OpenSCADA Вам знадобляться архіви вихідних текстів та ресурсів, які можна завантажити з ftp або http-серверу проекту.
Збірка Deb-пакетів відбувається у теці "debian" зі скриптами збірки, яка міститься у архівах вихідних текстів OpenSCADA.
Етапи збірки:
OpenSCADA не входить у офіційне дерево portage Gentoo, тому збірка відбувається з оверлею. Детально про роботу з оверлеєм можна знайти на сайтах документації Gentoo, наприклад: http://ru.gentoo-wiki.com/wiki/Portage_Overlay. Перед збіркою самого пакета OpenSCADA, portage задовольнить залежності, тобто, збере потрібні пакети (якщо необхідно).
$ 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