Цей посібник покликано допомогти у збірці OpenSCADA з вихідних текстів. Протягом накопичення досвіду збірки OpenSCADA на різних дистрибутивах ОС Linux та на інших платформах взагалі, документ буде доповнюватися особливостями та деталями збірки у різноманітних оточеннях.
На останніх версіях OpenSCADA, попереднього налаштування зібраної програми не потребується, у разі використання при збірці пакету з ресурсами "openscada-res" або дерева вихідних текстів з репозиторію SVN, навіть після прямої збірки. Тому одразу після збірки та встановлення програма готова до використання!
Для збірки 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.
По завершенню конфігурації буде сформовано зведений результат налаштувань, за допомогою якого можна перевірити бажану конфігурацію.
Перед складанням треба визначитися з джерелом вихідних текстів, ftp/http-сервер або SVN-репозиторій, та гілкою OpenSCADA, яку Ви будете збирати. Оскільки LTS гілка автоматично збирається для багатьох дистрибутивів Linux, рідко оновлюється та її версія міняється з випуском нової LTS, то у цьому посібнику розглянемо збірку робочої гілки (Work) яка, своєю чергою, автоматично збирається для обмеженого кола Linux дистрибутивів, часто міняється та її адреса завжди однакова. Збірка LTS гілки, як правило, здійснюється так само і у інструкції треба "Work" замінити на версію LTS та змінити назву пакету вихідних текстів. Загалом, до назв пакетів та тек треба ставитися уважно бо вони, версія від версії, можуть відрізнятися!
Збірка має виконуватися від ім'я звичайного користувача, хоча для ізольованих оточень може і від суперкористувача. При цьому будуть розглянуті варіанти встановлення та виконання як глобально — у систему, так і локально — у теку користувача. Приймаємо логін (обліковий запис) користувача — "user".
Входимо як звичайний користувач та підмінюємо обліковий запис "user" на Ваш, визначаймося зі способом встановлення (глобальний або локальний) та дотримуємося інструкції:
Етапи приготування дерева вихідних текстів до складання:
Етапи глобальної збірки:
Етапи локальної збірки:
Для збірки RPM-пакетів OpenSCADA Вам знадобляться архіви вихідних текстів, ресурсів та файл специфікації RPM пакету (openscada.spec, openscada_mod_ALT.spec, openscada_mod_RH.spec) або ж SRPM-пакет всіх цих вихідних матеріалів.
Файл специфікації RPM-пакетів та SRPM-пакет можуть відрізнятися для різних дистрибутивів Linux, враховуючи їх особливості, тому потрібно намагатися завантажувати їх відповідно до дистрибутиву. Якщо спеціальний SRPM пакет відсутній тоді можна спробувати зібрати з уніфікованого файлу специфікації (openscada.spec) у основному SRPM пакеті або пакеті ресурсів.
Збірка RPM-пакетів відбувається у директорії зі спеціальною структурою, яка за звичай створюється під час встановлення відповідного пакету дистрибутива (наприклад: rpm-build). Ця директорія, залежно від дистрибутиву, розташовується у домашній теці користувача або у теці /usr/src. Відомі факти розташування директорії збірки RPM-пакетів різних дистрибутивів:
Якщо після встановлення спеціалізованого пакету теки створення RPM пакетів немає тоді її потрібно створити командою:
Етапи збірки за файлом специфікації RPM:
Етапи збірки із SRPMS пакету:
Для збірки DEB-пакетів OpenSCADA Вам знадобляться архіви вихідних текстів та ресурсів.
Збірка DEB-пакетів відбувається у теці "debian" зі скриптами збірки, яка міститься у архівах вихідних текстів OpenSCADA.
Етапи збірки:
OpenSCADA не входить у офіційне дерево portage Gentoo, тому збірка відбувається з оверлею. Перед збіркою самого пакета OpenSCADA, portage задовольнить залежності, тобто, збере потрібні пакети (якщо необхідно).
$ emerge -vp openscada These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ~] dev-util/openscada-0.9 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
Областю застосування менеджеру пакетів та пакетів IPKG переважно є вбудовані оточення Linux з обмеженим об'ємом пам'яті на кшталт роутерів бездротових мереж. Відповідно і збірка пакетів IPKG є частиною складальних систем таких оточень, та опис цієї процедури не можна розглядати окремо від самої складальної системи, тому щодо створенням IPKG пакетів OpenSCADA читайте у розділі "Дистрибутив OpenWRT" підпроекту "Загальне вбудовування OpenSCADA та програмовані логічні контролери (ПЛК)".
Операційна система Android є програмним оточенням на основі ядра Linux, яке переважно призначене та використовується на мобільних телефонах, смартфонах, планшетах та іншому обладнані з сенсорним екраном. Стороннє програмне забезпечення для Android розповсюджується у вигляді APK-пакетів, збірку якого неможливо розглянути у відриві від складального оточення Android SDK, NDK та збірки всіх залежностей OpenSCADA, тому на предмет збірки OpenSCADA та створення її APK-пакетів читайте у під-проекті "Адаптація OpenSCADA до платформи Android".
Documents/How_to/Build_from_source/uk - GFDL | July 2021 | OpenSCADA 0.9.4 |