Посібник покликано допомогти у збірці OpenSCADA з вихідних текстів. Протягом накопичення досвіду збірки OpenSCADA на різних дистрибутивах ОС Linux та на інших платформах взагалі, документ буде доповнюватися особливостями та деталями збірки у цих оточеннях.
Попереднього налаштування складеної програми на останніх версіях OpenSCADA не потребується у разі використання при складані пакету з ресурсами "openscada-res" або дерева вихідних текстів з репозиторію SVN, навіть після прямої збірки. Тому одразу після збірки і встановлення програма готова до використання!
Для складання OpenSCADA із вихідних текстів необхідний досвід складання вільного ПЗ, а також базові знання ОС Linux та використаного дистрибутиву Linux. Що дозволить коректно задовольняти залежності та вирішувати можливі проблеми складання.
У якості складальної системи проєктом OpenSCADA використовується набір утиліт AutoTools. Будь якому складанню проєкту під керуванням AutoTools передує стадія конфігурації під оточення ОС, а інколи і формування самої складальної системи. Стадія конфігурації, як і безпосередньо складання, здійснюється завжди та не залежить від того, чи відбувається це пряма збірка або збірка пакету.
Для формування складальної системи мають бути встановлені утиліти AutoTools: autoconf, automake і libtool. Загальне формування можна здійснити командою autoreconf -if. Раніше сформована складальна система інколи може потребувати переформатування, наприклад, у випадку значної відмінності оточення ОС формування і поточного! Переформування складальної системи також здійснюється раніше визначеною командою формування.
Конфігурація складальної системи здійснюється викликом команди configure. За посередництвом визначення аргументів до цієї команди можна включити-виключити функцію або модуль OpenSCADA. Отримати весь перелік доступних параметрів конфігурації та модулів OpenSCADA можна вказавши аргумент configure --help.
Включення і виключення модулів OpenSCADA здійснюється передаванням аргументів configure --enable-{ModName} і configure --disable-{ModName} . Під час вибору модулів можна вказати політику "Включити всі модулі" — configure --enable-AllModuls або "Виключить всі модулі" — configure --disable-AllModuls, і надалі включати-виключати окремі модулі, залежно від того, що буде простіше. Більшість модулів OpenSCADA можна влінковувати (вбудовувати) безпосередньо у бібліотеку ядра OpenSCADA, а не збирати окремою бібліотекою, для чого потрібно вказати аргумент configure --enable-{ModName}=incl.
Загалом ви можете скласти OpenSCADA у трьох бінарних конфігураціях, оперуючи розташуванням бібліотеки ядра аргументом configure --enable-CoreLibStatic:
По успішному завершенню конфігурації буде сформовано зведений результат налаштувань, за допомогою якого можна перевірити основні моменти.
Перед складанням необхідно визначитися з джерелом вихідних текстів, FTP/HTTP-сервер або SVN-репозиторій, та гілкою OpenSCADA, яку будете складати. Оскільки LTS гілка автоматично складається для багатьох дистрибутивів Linux, рідко оновлюється та її версія міняється з випуском нової LTS, то у цьому посібнику розглянемо збірку робочої гілки (Work) яка, своєю чергою, автоматично складається для обмеженого кола Linux дистрибутивів, часто змінюється та її адреса завжди однакова, якщо не вважати номер ревізії. Збірка LTS гілки як правило здійснюється так само і у інструкції треба "Work" замінити на версію LTS та змінити назву пакету вихідних текстів. Загалом, до назв пакетів та тек треба ставитися уважно, бо вони можуть відрізнятися версія від версії!
Складання має здійснюватися від ім'я звичайного користувача, хоча для ізольованих оточень може і від суперкористувача. При цьому будуть розглянуті варіанти встановлення та виконання як глобально — у систему, так і локально — у теку користувача. Приймаємо логін (обліковий запис) користувача за "user".
Входимо у якості звичайного користувача та підмінюємо обліковий запис "user" на ваш, визначаймося зі способом встановлення (глобальний або локальний) та дотримуємося інструкції:
Етапи приготування дерева вихідних текстів до складання:
mkdir ~/projects
cd ~/projects
wget http://ftp.oscada.org/OpenSCADA/Work/openscada-1+r2920.tar.xz
wget http://ftp.oscada.org/OpenSCADA/Work/openscada-res-1+r2920.tar.xz
tar -xvf openscada-1+r2920.tar.xz
cd openscada-1+r2920
tar -xvf ../openscada-res-1+r2920.tar.xz
svn co http://oscada.org/svn/trunk/OpenSCADA/
cd OpenSCADA
autoreconf -ivf
Етапи глобального складання:
./configure
make
su # Вхід до суперкористувача
make install
exit
openscada
Етапи локального складання:
mkdir ~/OScadaW
./configure --prefix=/home/user/OScadaW
make
make install
cd ~/OScadaW/bin
./openscada
Для складання DEB-пакетів OpenSCADA вам знадобляться архіви вихідних текстів та ресурсів.
Складання DEB-пакетів відбувається у теці "debian" із скриптами складання, яка міститься у архівах вихідних текстів OpenSCADA.
Етапи складання:
mkdir ~/build
cd ~/build
wget http://ftp.oscada.org/OpenSCADA/Work/openscada-1+r2920.tar.xz
wget http://ftp.oscada.org/OpenSCADA/Work/openscada-res-1+r2920.tar.xz
tar -xvf openscada-1+r2920.tar.xz
cd openscada-1+r2920
tar -xvf ../openscada-res-1+r2920.tar.xz
svn co http://oscada.org/svn/trunk/OpenSCADA/
cd OpenSCADA
ln -s data/debian debian
ln -s data/debian_mod debian
dpkg-buildpackage -rfakeroot
fakeroot debian/rules binary
fakeroot debian/rules build
Для складання 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-пакетів RPMBuildDir різних дистрибутивів:
Якщо після встановлення спеціалізованого пакету відсутній каталог RPM пакетів, тоді його необхідно створити командою:
install -m 755 -d ~/rpmbuild/{SPECS,SOURCES} # RedHat, CentOS, Mandriva, Fedora
install -m 755 -d /usr/src/packages/{SPECS,SOURCES} # SuSE
install -m 755 -d ~/RPM/{SPECS,SOURCES} # ALTLinux
Етапи складання за файлом специфікації RPM:
cp openscada-1+r2920.tar.xz openscada-res-1+r2920.tar.xz {RPMBuildDir}/SOURCES
cp openscada.spec {RPMBuildDir}/SPECS
rpmbuild -bb {RPMBuildDir}/SPECS/openscada.spec
rpmbb -i {RPMBuildDir}/SPECS/openscada.spec
Етапи складання із SRPMS пакету:
rpmbuild --rebuild openscada-1+r2920.src.rpm
OpenSCADA не входить до офіційного дерева "portage Gentoo", тому збірка відбувається з оверлею. Перед збіркою самого пакета OpenSCADA portage задовольнить залежності, тобто, збере потрібні пакети (якщо необхідно).
PORTDIR_OVERLAY="/usr/local/portage"
cd /usr/local/portage/dev-util/openscada
wget http://ftp.oscada.org/OpenSCADA/LTS/Gentoo/openscada-0.9.4.ebuild.tar.bz2
tar -xvf openscada-0.9.4.ebuild.tar.bz2
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.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
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
emerge -q openscada
Областю застосування менеджеру пакетів та пакетів 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 | March 2024 | OpenSCADA 0.9.7 |