Authors: Michael Borland, Robert Soliday and Hairong Shang
Packagers: Robert Soliday
If you encounter any installation issues, please [email protected].
Preferred Installation Steps
Step 1: Download prebuilt RPMs
Redhat Enterprise Linux (RHEL) 10 x86_64
- SDDSToolKit-5.8-1.rhel.10.x86_64.rpm
RHEL 10 compatibility RPMs required
xz-lzma-compat
zlib-ng-compat
zlib-ng-compat-devel - SDDSToolKit-devel-5.8-1.rhel.10.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.rhel.10.x86_64.rpm
- OAGTclTk-1.28-1.rhel.10.x86_64.rpm
- elegant-2025.1.0-1.rhel.10.mpich.x86_64.rpm
- elegant-2025.1.0-1.rhel.10.openmpi.x86_64.rpm
- shower-1.13-1.rhel.10.x86_64.rpm
- spiffe-4.10.0-1.rhel.10.x86_64.rpm
- SDDSJava-5.2.1-1.rhel.10.x86_64.rpm
- clinchor-2.0-1.rhel.10.x86_64.rpm
- shield-1.0-1.rhel.10.x86_64.rpm
Redhat Enterprise Linux (RHEL) 9 x86_64
- SDDSToolKit-5.8-1.rhel.9.x86_64.rpm
- SDDSToolKit-devel-5.8-1.rhel.9.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.rhel.9.x86_64.rpm
- OAGTclTk-1.28-1.rhel.9.x86_64.rpm
- elegant-2025.1.0-1.rhel.9.mpich.x86_64.rpm
- elegant-2025.1.0-1.rhel.9.openmpi.x86_64.rpm
- shower-1.13-1.rhel.9.x86_64.rpm
- spiffe-4.10.0-1.rhel.9.x86_64.rpm
- SDDSJava-5.2.1-1.rhel.9.x86_64.rpm
- clinchor-2.0-1.rhel.9.x86_64.rpm
- shield-1.0-1.rhel.9.x86_64.rpm
Red Hat Enterprise Linux (RHEL) 8 x86_64
- SDDSToolKit-5.8-1.rhel.8.x86_64.rpm
- SDDSToolKit-devel-5.8-1.rhel.8.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.rhel.8.x86_64.rpm
- OAGTclTk-1.28-1.rhel.8.x86_64.rpm
- elegant-2025.1.0-1.rhel.8.mpich.x86_64.rpm
- elegant-2025.1.0-1.rhel.8.openmpi.x86_64.rpm
- shower-1.13-1.rhel.8.x86_64.rpm
- spiffe-4.10.0-1.rhel.8.x86_64.rpm
- SDDSJava-5.2.1-1.rhel.8.x86_64.rpm
- clinchor-2.0-1.rhel.8.x86_64.rpm
- shield-1.0-1.rhel.8.x86_64.rpm
Fedora 42 x86_64
- SDDSToolKit-5.8-1.fedora.42.x86_64.rpm
- SDDSToolKit-devel-5.8-1.fedora.42.x86_64.rpm
- SDDSEpicsToolKit-5.8-1.fedora.42.x86_64.rpm
- OAGTclTk-1.30-1.fedora.42.x86_64.rpm
- elegant-2025.1.0-1.fedora.42.mpich.x86_64.rpm
- elegant-2025.1.0-1.fedora.42.openmpi.x86_64.rpm
- shower-1.14-1.fedora.42.x86_64.rpm
- spiffe-4.10.0-1.fedora.42.x86_64.rpm
- SDDSJava-5.2.1-1.fedora.42.x86_64.rpm
- clinchor-2.0-1.fedora.42.x86_64.rpm
- shield-1.1-1.fedora.42.x86_64.rpm
Fedora 41 x86_64
- SDDSToolKit-5.8-1.fedora.41.x86_64.rpm
- SDDSToolKit-devel-5.8-1.fedora.41.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.fedora.41.x86_64.rpm
- OAGTclTk-1.29-1.fedora.41.x86_64.rpm
- elegant-2025.1.0-1.fedora.41.mpich.x86_64.rpm
- elegant-2025.1.0-1.fedora.41.openmpi.x86_64.rpm
- shower-1.13-1.fedora.41.x86_64.rpm
- spiffe-4.10.0-1.fedora.41.x86_64.rpm
- SDDSJava-5.2.1-1.fedora.41.x86_64.rpm
- clinchor-2.0-1.fedora.41.x86_64.rpm
- shield-1.0-1.fedora.41.x86_64.rpm
Fedora 40 x86_64
- SDDSToolKit-5.8-1.fedora.40.x86_64.rpm
- SDDSToolKit-devel-5.8-1.fedora.40.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.fedora.40.x86_64.rpm
- OAGTclTk-1.28-1.fedora.40.x86_64.rpm
- elegant-2025.1.0-1.fedora.40.mpich.x86_64.rpm
- elegant-2025.1.0-1.fedora.40.openmpi.x86_64.rpm
- shower-1.13-1.fedora.40.x86_64.rpm
- spiffe-4.10.0-1.fedora.40.x86_64.rpm
- SDDSJava-5.2.1-1.fedora.40.x86_64.rpm
- clinchor-2.0-1.fedora.40.x86_64.rpm
- shield-1.0-1.fedora.40.x86_64.rpm
Fedora 39 x86_64
- SDDSToolKit-5.7-1.fedora.39.x86_64.rpm
- SDDSToolKit-devel-5.7-1.fedora.39.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.fedora.39.x86_64.rpm
- OAGTclTk-1.28-1.fedora.39.x86_64.rpm
- elegant-2024.1.0-1.fedora.39.mpich.x86_64.rpm
- elegant-2024.1.0-1.fedora.39.openmpi.x86_64.rpm
- shower-1.13-1.fedora.39.x86_64.rpm
- spiffe-4.9.0-1.fedora.39.x86_64.rpm
- SDDSJava-5.2.1-1.fedora.39.x86_64.rpm
- clinchor-2.0-1.fedora.39.x86_64.rpm
- shield-1.0-1.fedora.39.x86_64.rpm
Debian 12 x86_64
- SDDSToolKit-5.8-1.debian.12.x86_64.rpm
- SDDSToolKit-devel-5.8-1.debian.12.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.debian.12.x86_64.rpm
- OAGTclTk-1.28-1.debian.12.x86_64.rpm
- elegant-2025.1.0-1.debian.12.mpich.x86_64.rpm
- elegant-2025.1.0-1.debian.12.openmpi.x86_64.rpm
- spiffe-4.10.0-1.debian.12.x86_64.rpm
- SDDSJava-5.2.1-1.debian.12.x86_64.rpm
- clinchor-2.0-1.debian.12.x86_64.rpm
- shield-1.0-1.debian.12.x86_64.rpm
Debian 11 x86_64
- SDDSToolKit-5.8-1.debian.11.x86_64.rpm
- SDDSToolKit-devel-5.8-1.debian.11.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.debian.11.x86_64.rpm
- OAGTclTk-1.28-1.debian.11.x86_64.rpm
- elegant-2025.1.0-1.debian.11.mpich.x86_64.rpm
- elegant-2025.1.0-1.debian.11.openmpi.x86_64.rpm
- spiffe-4.10.0-1.debian.11.x86_64.rpm
- SDDSJava-5.2.1-1.debian.11.0.x86_64.rpm
- clinchor-2.0-1.debian.11.0.x86_64.rpm
- shield-1.0-1.debian.11.0.x86_64.rpm
Ubuntu 25.04 x86_64
- SDDSToolKit-5.8-1.ubuntu.25.04.x86_64.rpm
- SDDSToolKit-devel-5.8-1.ubuntu.25.04.x86_64.rpm
- SDDSEpicsToolKit-5.8-1.ubuntu.25.04.x86_64.rpm
- OAGTclTk-1.30-1.ubuntu.25.04.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.25.04.mpich.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.25.04.openmpi.x86_64.rpm
- shower-1.14-1.ubuntu.25.04.x86_64.rpm
- spiffe-4.10.0-1.ubuntu.25.04.x86_64.rpm
- SDDSJava-5.2.1-1.ubuntu.25.04.x86_64.rpm
- clinchor-2.0-1.ubuntu.25.04.x86_64.rpm
- shield-1.1-1.ubuntu.25.04.x86_64.rpm
Ubuntu 24.04 x86_64
- SDDSToolKit-5.8-1.ubuntu.24.04.x86_64.rpm
- SDDSToolKit-devel-5.8-1.ubuntu.24.04.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.ubuntu.24.04.x86_64.rpm
- OAGTclTk-1.28-1.ubuntu.24.04.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.24.04.mpich.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.24.04.openmpi.x86_6.rpm
- shower-1.13-1.ubuntu.24.04.x86_64.rpm
- spiffe-4.10.0-1.ubuntu.24.04.x86_64.rpm
- SDDSJava-5.2.1-1.ubuntu.24.04.x86_64.rpm
- clinchor-2.0-1.ubuntu.24.04.x86_64.rpm
- shield-1.0-1.ubuntu.24.04.x86_64.rpm
Ubuntu 22.04 x86_64
- SDDSToolKit-5.8-1.ubuntu.22.04.x86_64.rpm
- SDDSToolKit-devel-5.8-1.ubuntu.22.04.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.ubuntu.22.04.x86_64.rpm
- OAGTclTk-1.28-1.ubuntu.22.04.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.22.04.mpich.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.22.04.openmpi.x86_6.rpm
- shower-1.13-1.ubuntu.22.04.x86_64.rpm
- spiffe-4.10.0-1.ubuntu.22.04.x86_64.rpm
- SDDSJava-5.2.1-1.ubuntu.22.04.x86_64.rpm
- clinchor-2.0-1.ubuntu.22.04.x86_64.rpm
- shield-1.0-1.ubuntu.22.04.x86_64.rpm
Ubuntu 20.04 x86_64
- SDDSToolKit-5.8-1.ubuntu.20.04.x86_64.rpm
- SDDSToolKit-devel-5.8-1.ubuntu.20.04.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.ubuntu.20.04.x86_64.rpm
- OAGTclTk-1.28-1.ubuntu.20.04.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.20.04.mpich.x86_64.rpm
- elegant-2025.1.0-1.ubuntu.20.04.openmpi.x86_64.rpm
- shower-1.13-1.ubuntu.20.04.x86_64.rpm
- spiffe-4.10.0-1.ubuntu.20.04.x86_64.rpm
- SDDSJava-5.2.1-1.ubuntu.20.04.x86_64.rpm
- clinchor-2.0-1.ubuntu.20.04.x86_64.rpm
- shield-1.0-1.ubuntu.20.04.x86_64.rpm
openSUSE 15.6 x86_64
- SDDSToolKit-5.8-1.openSUSE.15.6.x86_64.rpm
- SDDSToolKit-devel-5.8-1.openSUSE.15.6.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.openSUSE.15.6.x86_64.rpm
- OAGTclTk-1.28-1.openSUSE.15.6.x86_64.rpm
- elegant-2025.1.0-1.openSUSE.15.6.mpich.x86_64.rpm
- elegant-2025.1.0-1.openSUSE.15.6.openmpi.x86_64.rpm
- shower-1.13-1.openSUSE.15.6.x86_64.rpm
- spiffe-4.10.0-1.openSUSE.15.6.x86_64.rpm
- SDDSJava-5.2.1-1.openSUSE.15.6.x86_64.rpm
- clinchor-2.0-1.openSUSE.15.6.x86_64.rpm
- shield-1.0-1.openSUSE.15.6.x86_64.rpm
openSUSE 15.5 x86_64
- SDDSToolKit-5.7-1.openSUSE.15.5.x86_64.rpm
- SDDSToolKit-devel-5.7-1.openSUSE.15.5.x86_64.rpm
- SDDSEpicsToolKit-5.6-1.openSUSE.15.5.x86_64.rpm
- OAGTclTk-1.28-1.openSUSE.15.5.x86_64.rpm
- elegant-2024.1.0-1.openSUSE.15.5.mpich.x86_64.rpm
- elegant-2024.1.0-1.openSUSE.15.5.openmpi.x86_64.rpm
- shower-1.13-1.openSUSE.15.5.x86_64.rpm
- spiffe-4.9.0-1.openSUSE.15.5.x86_64.rpm
- SDDSJava-5.2.1-1.openSUSE.15.5.x86_64.rpm
- clinchor-2.0-1.openSUSE.15.5.x86_64.rpm
- shield-1.0-1.openSUSE.15.5.x86_64.rpm
Step 2: Install or upgrade SDDS and AOP software
To install or upgrade the SDDS and AOP software, you can use the following commands:
Review installed files:
rpm -qpl package.x86_64.rpm
Install or upgrade packages:
For Fedora and RedHat systems:
rpm -Uvh package.x86_64.rpm
For Ubuntu systems:
alien -i package.x86_64.rpm
Step 3: Install the sdds Python module (optional)
The sdds is available through either PyPI or Anaconda
PyPI Package:
python -m pip install soliday.sdds
Conda (Anaconda) Package:
conda install soliday::sdds
Step 4: Final steps
Download defns.rpn:
curl -O https://ops.aps.anl.gov/downloads/defns.rpn mv defns.rpn ~/.defns.rpn
Update ~/.bash_profile (RHEL, Fedora) or ~/.profile (Ubuntu, Debian):
export RPN_DEFNS=$(HOME)/.defns.rpn export HOST_ARCH=linux-x86_64 export EPICS_HOST_ARCH=linux-x86_64
Compiling from Source Code
Step 1: Configure the environment
Update ~/.bash_profile (RHEL, Fedora) or ~/.profile (Ubuntu, Debian)
export PATH=$(HOME)/epics/base/bin/linux-x86_64:$(HOME)/epics/extensions/bin/linux-x86_64:$(HOME)/oag/apps/bin/linux-x86_64:$PATH export HOST_ARCH=linux-x86_64 export EPICS_HOST_ARCH=linux-x86_64 export RPN_DEFNS=$(HOME)/.defns.rpn
Step 2: Download and compile EPICS/Base, SDDS ToolKit, SDDS EPICS Toolkit, OAGTcl/Tk, and Elegant
mkdir epics cd epics curl -O https://epics.anl.gov/download/base/base-7.0.9.tar.gz tar -xf base-7.0.9.tar.gz rm base-7.0.9.tar.gz ln -s base-7.0.9 base git clone https://github.com/epics-extensions/extensions cd .. curl -O https://ops.aps.anl.gov/downloads/defns.rpn curl -O https://ops.aps.anl.gov/downloads/SDDS.5.8.tar.gz curl -O https://ops.aps.anl.gov/downloads/SDDSepics.5.8.tar.gz curl -O https://ops.aps.anl.gov/downloads/oag.apps.configure.tar.gz curl -O https://ops.aps.anl.gov/downloads/oag.1.29.tar.gz curl -O https://ops.aps.anl.gov/downloads/elegant.2025.1.0.tar.gz tar -xf SDDS.5.8.tar.gz tar -xf SDDSepics.5.8.tar.gz tar -xf oag.apps.configure.tar.gz tar -xf oag.1.29.tar.gz tar -xf elegant.2025.1.0.tar.gz rm SDDS.5.8.tar.gz rm SDDSepics.5.8.tar.gz rm oag.apps.configure.tar.gz rm oag.1.29.tar.gz rm elegant.2025.1.0.tar.gz mv defns.rpn .defns.rpn cd epics/base/configure echo "SHARED_LIBRARIES=NO" >> CONFIG echo "LINKER_USE_RPATH=NO" >> CONFIG echo "COMMANDLINE_LIBRARY=" >> CONFIG cd .. make -j cd ../extensions/configure make clean all cd ../src/SDDS make clean make -j make -j make cd ../oagca make clean make -j cd ../SDDSepics make clean make -j cd ../../../.. cd oag/apps/configure echo "EPICS_BASE=$(dirname $(dirname $(dirname $(pwd))))/epics/base" >> RELEASE echo "EPICS_EXTENSIONS=$(dirname $(dirname $(dirname $(pwd))))/epics/extensions" >> RELEASE make clean all cd ../src/tcltklib make clean all cd ../tcltkapp/oagapp make clean all cd ../../elegant make clean make -j
Step 3: Using custom MPI versions for the parallel version of elegant
cd epics/extensions/src/SDDS/SDDSlib make clean make -j MPI_CC=/usr/local/bin/mpicc MPI_CCC=/usr/local/bin/mpic++ cd ../../../../../oag/apps/src/elegant make clean make -j MPI_CC=/usr/local/bin/mpicc MPI_CCC=/usr/local/bin/mpic++
Additional Resources