In the very near future, we will be migrating the entire HEX computer farm to a new operating system, Almalinux 8, which will require some changes when running your setup scripts or submitting jobs to condor. For CMS users, there are some particularly important steps needed, depending on whether you are analyzing Run 2 or Run 3 data.
Note that if your .bashrc or .cshrc already contains lines sourcing /condor/HTCondor/current/condor.(c)sh or /osg/current/setup.(c)sh, it would be good to remove them, to avoid conflicts when logging on to the alma8 machine. Similarly, if you set a SCRAM_ARCH in a script that is run on condor, be sure that it is consistent with the one you set in the following steps.
An additional complication arises for those analyzing CMS Run 2 data, because the CMSSW releases for Run 2 data (e.g. CMSSW_10_6_X) were built against CentOS7, with no corresponding builds for Alma8. The Run 3 CMSSW releases (e.g. CMSSW_12_X_Y) are built against Alma8, which is why this complication is not relevant for the Run 3 setup documentation above. As a result, for the Run 2 analyses, the current recommendation is to use apptainer (formerly known as "singularity") containers, which create a virtual environment for us to run CMSSW code from older releases on newer operating systems. These containers have a minimal set of items installed, and do not even have emacs or vim (though vi and nano are both available); it is probably best to do any text editing in a separate shell that is not running apptainer, while using the container primarily for running code. For those interested, more detail can be found at https://cms-sw.github.io/singularity.html. For our purposes, we can do the following to set up the apptainer compatible with Run 2 data:
From there, you should go to your existing Run 2 CMSSW working area, run `cmsenv`, and compile via `scram b`. If you don't yet have a CMSSW working area, you can make one in the usual way via:
For 10_6_X releases, in my experience, it is not necessary to set the SCRAM_ARCH, because the container automatically falls back to slc7_amd64_gcc700. However, for older releases, you may need to set SCRAM_ARCH to an appropriate value before attempting cmsrel.
The final complication we have to worry about is that since we are migrating the condor nodes to Alma8, our CentOS7-compatible condor jobs will also need to run within a container! To do so, we must add the following to our condor_submit file:
As mentioned earlier in this page, it's important to also be sure to remove any lines pertaining to "C7", which was an option that forces the jobs to run on CentOS7 machines, which will soon be deprecated.