I have a lot of gnuradio and uhd configured nodes around the world. Up until now, we have managed them with a mix of simple configuration management and individual maintenance. However, I'd like to move on to using something more robust, like SaltStack, Fabric, etc. I am aware of Puppet and Chef as well.
Installing most packages is easy with these tools, but gnuradio and uhd pose a unique problem, at least right now. For us, it is desirable to deploy a specific version of gnuradio and uhd.
Currently, that is possible with the build-gnuradio script, but it requires some interaction that makes automatically deploying many nodes difficult without modifying the script (which may be a valid solution).
The deb repos hosted by Ettus are awesome, but as far as I know, I can't run something like sudo apt-get install gnuradio=3.6.3 to explicitly point to a certain release. If I use the master repo and do an update when 3.7 comes out, gnuradio and uhd might get updated before we adjust our code base for the new API.
We could also build directly from the git repos, but the build-gnuradio script handles that so well, that I will ignore this possibility.
For now, perhaps the best option is to just locally cache the debs we need and push them.
Has anyone else dealt with this problem and found a good solution?