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:
| Value | Meaning | Example |
|---|---|---|
uname -m | Machine architecture | x86_64 |
EPICS_HOST_ARCH | EPICS build target and binary subdirectory | linux-x86_64 |
| OS directory | Distribution and release used to build the tree | debian-13 |
| Release directory | EPICS-env distribution version | 1.5.0 |
| Base directory | EPICS Base version | 7.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.