Managing GNU Radio Installations with Conda: A How-To for Everyone from Users to Developers - Presented by Ryan Volz at GNU Radio Conference 2021
You know what GNU Radio is, but I'd like to introduce you to conda. Conda is a cross-platform package manager (supporting Linux, macOS, and Windows) that makes it easy to install packages in self-contained environments, separate from your system installation and other package managers. Conda is popular for installing Python packages, particularly for scientific computing and machine learning, but it has broader applications than those. If you've struggled with installing GNU Radio by other methods, you want to use GNU Radio with other bleeding-edge software and don't want to compile everything from source, or you want to try out a new version without affecting your tried-and-true system installation, conda may be right for you!
With this talk, I'd like to share everything I've learned in going from a casual conda user to the maintainer of the entire GNU Radio stack on conda-forge. I will cover the following:
How to install GNU Radio on Linux, macOS, and Windows (!!) with conda
The relationship between conda (the package manager), Anaconda (the software distribution), conda-forge (the community-supported packages), and Radioconda (my radio-focused installer/distribution)
Common conda pitfalls and how to avoid them
Why you should actually use mamba, conda's faster, better cousin
How conda environments work
How to build GNU Radio from source, including out-of-tree (OOT) modules, within a conda environment
How to write your own recipe for creating a conda package
The amazing infrastructure for maintaining recipes through conda-forge
How we can create a cross-platform utopia of compiled GNU Radio OOT packages by banding together and submitting more recipes to conda-forge
I might be exaggerating a bit with that last topic, but I do hope that you will have learned enough that you could become a happy user of, and occasional contributor to, the (radio + conda) ecosystem.
https://events.gnuradio.org/event/8/contributions/38/