We have several nodes, most of which have different Linux distributions (distro for short). Controller has a different distro as well. The only common thing between controller and all the does is that all of them ar x86_64.

I can install Slurm using package manager on all the machines but this will not work because controller will have a different version of Slurm compared to the nodes (21.08 vs 23.11)

If I build from source then I see two solutions:  
 - build a deb package
 - build a custom package (./configure, make, make install) 

Building a debian package on the controller and then distributing the binaries on nodes won't work either because that binary will start looking for the shared libraries that it was built for and those don't exist on the nodes.

So the only solution I have is to build a static binary using a custom package. Am I correct or is there another solution here?