<div dir="ltr">Following up on our discussion at the Software working group meeting yesterday, I tried running the prebuilt instances of ROOT on /cvmfs/<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__sft.cern.ch_lcg_app_releases_ROOT&d=DwMFaQ&c=CJqEzB1piLOyyvZjb8YUQw&r=Te_hCR4EUlJ6iCDYLJ8Viv2aDOR7D9ZZMoBAvf2H0M4&m=Kq7Ye-YCau6RcLRq6ag9Fri0rWGFl2McegxxPCQy-ypf8iIZKcARoq5rnHm16BFw&s=CIWuBVY3rN_yWEnNmZEZH-5FDTno_gH3dUgq33njZ3c&e=" target="_blank">sft.cern.ch/lcg/app/releases/ROOT</a> and didn't find any of the 6.28.08 builds relevant to almalinux 9. Following the recommendations on <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__root.cern.ch&d=DwMFaQ&c=CJqEzB1piLOyyvZjb8YUQw&r=Te_hCR4EUlJ6iCDYLJ8Viv2aDOR7D9ZZMoBAvf2H0M4&m=Kq7Ye-YCau6RcLRq6ag9Fri0rWGFl2McegxxPCQy-ypf8iIZKcARoq5rnHm16BFw&s=LybwgfanJ63oWq5atl9OJTRQ__S4sXTj-KmLQ6hxnL0&e=" target="_blank">root.cern.ch</a>, the next thing I tried was to install root using yum/dnf. Inside the docker container, Inside my alma9 docker container, a copy of the one you created with my own Gluex-required additional packages, I added a command to install all yum packages that have root-core as a dependency.<div><br></div><div><span id="gmail-docs-internal-guid-cc5441c3-7fff-00e4-7c17-74181a49ca5d"><p dir="ltr" style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">Apptainer> dnf repoquery --whatrequires root-core</span></p><p dir="ltr" style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">Last metadata expiration check: 0:16:40 ago on Tue Oct 24 11:36:18 2023.</span></p><p dir="ltr" style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">HepMC3-rootIO-0:3.2.7-1.el9.x86_64</span></p><p dir="ltr" style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">python3-HepMC3-rootIO-0:3.2.7-1.el9.x86_64</span></p><p dir="ltr" style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">python3-jupyroot-0:6.28.08-1.el9.x86_64</span></p><p dir="ltr" style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">python3-root-0:6.28.08-1.el9.x86_64</span></p><p dir="ltr" style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">root-0:6.28.08-1.el9.x86_64</span></p><p style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">... and many, many more, total of 124 separate packages, 150 additional </span></p><p style="line-height:1.2;margin-left:18pt;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:"Courier New",monospace;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">... libraries drawn in as dependencies of those packages</span></p></span><br class="gmail-Apple-interchange-newline"><div>I then ran "dnf -y install" on all 124 of these packages inside the container. They all installed without a glitch. Now without any customization to the shell environment, all of the standard root commands (root, root-config, rootcling, rootcint, ...) show up in the default system path, and all of the related libraries show up in /usr/lib64<i>. </i>Likewise, in the python3 interpreter, I can "import ROOT" and get the full pyroot environment. I installed uproot inside the container separately using pip. Note that I have the full suite of root extras (Roofit, TMVA, Proof, Dataframes ...) installed inside the container without having to build anything from sources or figure out what package dependencies are needed.</div></div><div><br></div><div>The size of the alma9 container has increased from 5.8GB (before these 250+ root-related packages) to 7.8GB with everything included. I consider the additional 2GB in the container footprint to be well worth the effort saved.</div><div><br></div><div>One caveat is that just one release can be installed at a time, as far as I know. Is this a drawback? For me it is an advantage that there is just one version of root that we have to support at a time.</div><div><br></div><div>-Richard Jones</div></div>