Hi Carlo, On Mon, Feb 03 2025, Carlo Ascani via wrote: > - Use guix on a foreign distro (Debian 12) > - Use it especially to create isolated development environment
This is how I used to use Guix, so this should work well. I still use isolated development environments, just not on Debian any more. I use direnv so that entering the directory automatically brings the development packages into my environment. > - How easy is it to install older versions of packages? There are three cases here, which get harder as we go along: If the version you want is still packaged in Guix (which sometimes has multiple versions of a package) then this is easy: just use the version you want. If the version you want is not packaged in Guix, but was in the past, then you can do this by using time-machine, as Cayetano Santos mentioned. Doing it that way requires all the packages in your environment to come from the same version of Guix, which might be too drastic for your use. You can pull a single package from a specific prior revision of Guix using inferiors (documented in the manual under "(guix) Inferiors"[1]). Interestingly, it looks like Guix skipped Erlang 22. The upgrade in aa8df16bc5ca99615188b4f1e94a0e13c1e51d3a went from 21.3.8.13 to 23.2.1. If you can't use time-machine or inferiors (as with Erlang 22) then another option is to define your own version of a package for your environment. You can do this in the same manifest.scm/guix.scm file as you're defining the rest of your dependencies. In the simplest case, this might be something as simple as: --8<---------------cut here---------------start------------->8--- (define erlang-22 ((options->transformation '((with-version . "2.3.4.27"))) erlang)) --8<---------------cut here---------------end--------------->8--- Unfortunately this didn't work for Erlang when I tried it. I don't have time to dig into why, but at this point I think we're past "easy" and into merely "possible". > - Can I specify services to be started in the development > environments? I am not aware of a way to do this. There has been interest in this feature before, but it doesn't exist yet. Carlo [1]: https://guix.gnu.org/manual/devel/en/html_node/Inferiors.html