Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

1.3 Understand architecture and OS trees

EPICS-env 1.5.0 uses EPICS_HOST_ARCH=linux-x86_64 inside every supported Linux tree. Each tree is built separately for its operating system and version. The shared architecture name identifies the EPICS build target; it does not promise binary compatibility between Linux distributions.

This page explains the installed layout and how to choose a tree. Follow Install the EPICS environment for activation.

Architecture and operating system identity

The architecture and OS directory answer different questions:

ValueMeaningExample
uname -mMachine architecturex86_64
EPICS_HOST_ARCHEPICS build target and binary subdirectorylinux-x86_64
OS directoryDistribution and release used to build the treedebian-13
Release directoryEPICS-env distribution version1.5.0
Base directoryEPICS Base version7.0.10

After selecting the Debian 13 tree, for example, the installed paths are:

epics/1.5.0/debian-13/7.0.10/
    setEpicsEnv.bash
    .versions
    base/
        bin/linux-x86_64/
        lib/linux-x86_64/
    modules/
    vendor/

The activation script derives EPICS_HOST_ARCH from the selected Base installation and uses it to select the tool and library directories.

Use the matching OS tree

Base, modules, and vendor libraries are built for each target operating system. The OS directories contain those separate installations, including their binaries, headers, configuration, and module metadata.

Libraries such as glibc, libstdc++, readline, and libevent can differ between OS releases. A binary built for another release can require library versions or symbols absent from your host. Matching the CPU architecture alone is insufficient.

Choose the directory matching ID-VERSION_ID from /etc/os-release, such as debian-13 or rocky-8.10. The installation table lists all six OS trees in the public 1.5.0 distribution. Do not select a different tree just because both contain bin/linux-x86_64.

Build and run against one tree

Activate the matching tree before generating or building an IOC application. The generated configure/RELEASE identifies the Base and module paths used by that build. The loader uses the selected installed tree and its module metadata when starting an IOC.

Keep Base, module support, and runtime libraries from the selected tree together. To inspect an executable’s shared-library dependencies on Linux, use ldd on that executable and check that its EPICS libraries resolve to the intended installation.