ryanvolz / radioconda

Software radio distribution and installer for conda
Other
340 stars 39 forks source link

How to install specific versions of gnuradio and UHD? #77

Closed XieyangSun closed 8 months ago

XieyangSun commented 8 months ago

First of all I would like to thank the authors of this project, radioconda greatly facilitates the use of the gnuradio platform.

And I want to know, can I install a specific version of Gnuradio or UHD? In fact, I meet some old projects only support gnuradio 3.7 or even lower. But I find that the earliest version of radioconda support gnuradio-3.8.

hope to get your reply~

ryanvolz commented 8 months ago

I was toying around with conda and GNU Radio in the 3.7 days, but it was never very functional because the dependencies were outdated even then. I'm sorry to say that the situation has only gotten worse since, so that I don't think it would be possible today to build GNU Radio 3.7 using conda-supplied dependencies. At this point I've even dropped ongoing support for GR 3.8 and 3.9, much like the upstream developers have dropped it. For old OOT modules, you really have two options: use containers (like Docker) to use an older OS that supports GR 3.7 and its dependencies, or forward port anything you care about to make it compatible with GR 3.10.

But as you noted packages do exist from GR 3.8 onwards and UHD 3.15 onwards, and if you want particular versions then you can try installing them directly with mamba. Starting from a radioconda installation, I would suggest making a separate environment with

mamba create -n oldgr
mamba activate oldgr
mamba install gnuradio=3.8

or whichever packages and versions you want. Many combinations of gnuradio and uhd are not likely to be possible, but if you're flexible in the version of one or the other then there should be some combinations that work.

The radioconda installers are basically just snapshots of a collection of packages at a particular time, and by using conda/mamba as a package manager you can customize your environments to get closer to what you want. In that mode, you're basically following the recommendations here, although I will note that these days, micromamba might be an even better alternative than conda/mamba for getting an environment started.