Packaging of EPICS-basedControl System Software
-
Upload
cillian-arvey -
Category
Documents
-
view
26 -
download
1
description
Transcript of Packaging of EPICS-basedControl System Software
![Page 2: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/2.jpg)
2
Abstract
Packaging of control system software Control system software: EPICS base, driver
supports, modules, extensions, CSS, etc. Gives a consistent way to install, uninstall and
upgrade them. This work is sponsored by ITER
Examples in this presentation are taken from ITER CODAC Core System.
Visit ITER website for more details about CODAC Core System.https://www.iter.org/org/team/chd/cid/codac/coresystem
![Page 3: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/3.jpg)
3
Motivation: typical problems
EPICS drivers, modules, extensions and relevant applications are provided in different way. In most cases, only source is provided and you
need to build it before you use it. Compilation errors
Build dependencies. Wrong build configuration.
Inconsistent way to install, uninstall and upgrade Many people scatter files in different directories
with different conventions. Complex dependencies. How do you manage which version you have?
Don’t waste your time tosolve the common problems!
![Page 4: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/4.jpg)
Software Repository
4
Packaging & Repository
Make use of RPM, the standard packaging system. ITER: Built for 64-bit RHEL (currently 5.5).
You can also use CentOS, Scientific Linux, etc. Save compiled software on a shared repository
RHN Satellite Server yum repository exposed via HTTP
Distribute software through this repository.
EPICS base asyn
Sequencer …
![Page 5: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/5.jpg)
5
Advantages from users perspective
Standard tools to install, uninstall and upgrade are available. yum install / yum remove / yum upgrade … any GUI tool
Compiled software packages are ready for you. Dependencies are automatically resolved. Scripts can be run after installation if any.
![Page 6: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/6.jpg)
6
Unix standards
All packages are installed in accordance with the standard directory structure. Use of “alternative” to resolve path to executable
files. Run daemons in the same fashion of other Unix
services. Run a daemon with a separate account (not root).
optcodac-2.0
binepics
basemoduleextension
libinclude
etcopt
codac-2.0edmarchiver
init.dvar
optcodac-2.0
autosaveepicsIOCLog
Directory structure of CODAC Core System 2.0:
![Page 7: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/7.jpg)
7
Available packages on CODAC Core System 2.0
EPICS base EPICS modules (record/device/driver support)
sncseq, asyn, s7plc, autosave, … ni6259, pxi6682
Tools and libraries VDCT, caSnooper, pycachannel, …
CSS (Control System Studio) BOY, BEAST, BEAUTY, Data Browser, …
SDD tools
![Page 8: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/8.jpg)
8
How to make packages?
Maven Software project management tool. XML based configuration (pom.xml).
We developed Maven plug-ins to make RPMs of control system software. No need to write SPEC file. Particularly customized to quickly package EPICS
relevant software (IOC, modules, CSS etc.). Automatically detects dependencies.
Beginning part of pom.xml Packaging information in pom.xml
![Page 9: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/9.jpg)
9
Basic packaging procedure of IOC
mvn-make-base-app src/main/epics/xxxApp src/main/epics/iocBoot/iocXXX src/main/edm …
Make database, configure st.cmd, make operators’ screen, etc.
mvn package This command compiles source, runs tests if any
and makes RPMs in target directory.
srcmain
edmepics
xxxAppiocXXX
testtarget
Example source directory structure:
xxx-ioc-0.0a1.x86_64.rpm
xxx-opi-0.0a1.x86_64.rpm
![Page 10: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/10.jpg)
10
Example architectural view 1
IOC-EPICS base-Driver support
Operators’ clients-EPICS base-EDM-ALH
Archiving server-EPICS base-Channel Archiver
Developers’ workstation-EPICS base-EDM-ALH-VDCT-CSS
Common Software Repository
Software Repository
Developers directly uploadRPMs to the repository.
RPMs
RPMs
RPMsRPMs RPMs
RPMs
![Page 11: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/11.jpg)
11
Example architectural view 2
IOC-EPICS base-Driver support
Operators’ clients-EPICS base-EDM-ALH
Common Software Repository
Software Repository
Developers upload only modified source code.
RPMs
RPMsRPMs
Continuous Integration server
Source Repository
RPMs
source
sourcesource
…
![Page 12: Packaging of EPICS-basedControl System Software](https://reader035.fdocuments.in/reader035/viewer/2022062421/56812a99550346895d8e4eb4/html5/thumbnails/12.jpg)
12
Conclusion
Save your time by using packaging system. Packaging system gives a consistent way to make
packages and distribute them.
Thank You for Your Attention !