Dear, Maybe I am wrong and I miss one point.
If you have local packages that depends on Guix packages, then it is not a big issue when the Guix packages are removed. Because you just have to `guix pull --commit=<sha>' where <sha> points to a Guix commit owning the required packages. And if I have correct, you can put that in a manifest and then instantiate an environment for your local packages. Instead of splitting off all of Python 2 into a separate channel, why not just put the python2 packages which need to be removed. Then nothing breaks and it provides a picture of how many python2 packages necessary to Guix are still there. Speaking about channel, instead of GUIX_PACKAGE_PATH=~/work/guix/bimbs you create the file ~/.config/guix/channels.scm containing: (cons* (channel (name 'bimsb) (url "file:///home/simon/work/guix/bimsb") (branch "master")) %default-channels) Then: guix pull guix package -i <your-package> Here the url file:///home/simon/work/guix/bimsb is a clone of https://github.com/BIMSBbioinfo/guix-bimsb But you can directly specify Git repo online etc. Hope that helps All the best, simon