Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

IOC Deployment and Troubleshooting

1 Setup

1.1 Configure Environment Variables

1.1.1 Set enviroment variables specific to this training

Determine which shell is used

$ echo ${SHELL}
output
/bin/bash

or

/bin/tcsh

Note: the EPICS_DIR environment variable can be changed if it is desirable to create the files for this training in a different location.

bash

$ export EPICS_DIR=${HOME}/PET-S2/epics
$ export IOC_DIR=${EPICS_DIR}/synApps_6_2_1/ioc
$ export SUPPORT_DIR=${EPICS_DIR}/synApps_6_2_1/support

tcsh

$ setenv EPICS_DIR ${HOME}/PET-S2/epics
$ setenv IOC_DIR ${EPICS_DIR}/synApps_6_2_1/ioc
$ setenv SUPPORT_DIR ${EPICS_DIR}/synApps_6_2_1/support

1.1.2 Set EPICS_HOST_ARCH

Run the following command to determine the RHEL version.

$ cat /etc/redhat-release
output
Red Hat Enterprise Linux Server release 7.9 (Maipo)

or

Red Hat Enterprise Linux release 8.7 (Ootpa)

Set EPICS_HOST_ARCH based on the major RHEL version & shell

RHEL7 RHEL8
bash $ export EPICS_HOST_ARCH=rhel7-x86_64 $ export EPICS_HOST_ARCH=rhel8-x86_64
tcsh $ setenv EPICS_HOST_ARCH rhel7-x86_64 $ setenv EPICS_HOST_ARCH rhel8-x86_64

1.1.3 Clear EPICS environment variables

These EPICS environment variables can cause problems with this training, so they should be cleared before continuing.

bash

$ unset EPICS_BASE
$ unset EPICS_CA_ADDR_LIST
$ unset EPICS_CA_AUTO_ADDR_LIST

tcsh

$ unsetenv EPICS_BASE
$ unsetenv EPICS_CA_ADDR_LIST
$ unsetenv EPICS_CA_AUTO_ADDR_LIST

1.2 Create directories needed for the training

$ mkdir -p ${IOC_DIR} ${SUPPORT_DIR}

1.3 Confirm the directories exist

$ tree ${EPICS_DIR}
output
$ tree ${EPICS_DIR}
/home/beams/USERNAME/PET-S2/epics
└── synApps_6_2_1
    ├── ioc
    └── support

3 directories, 0 files

If the tree command doesn't exist, there is a workaround:

workaround

The find command can be used to show all directories inside a specific directory.

bash

$ tree() { find $1 -type d | grep -v git; }

tcsh

$ alias tree "find \!* -type d | grep -v git"

Once the bash function or tcsh alias is defined, the tree command can be rerun:

$ tree ${EPICS_DIR}

2 Deploy a new IOC