Thanks very much Csepp, I am getting closer to it. ................................................. I want to have Musescore 3.6.2 for long time, and additionally Musescore 4.0. I understood that the best would be to create a separate profile and have Musescore in it. But which version? Should I put the version 3.6.2 in my new profile to keep it, and in my main profile during updating it will eventually install version 4.0? ................................................ Or should I do it the other way round: to put version 4.0 in a separate profile, and keep version 3.6.2 in my main profile, but AFAIU that would mean during updating I will loose 3.6.2 for ever. ................................................ When using "Guix shell", AFAIU, I would have to do it on a daily basis, because every time I switch off my laptop, its lost. Is it like that? ................................................ Kind regards Gottfried Am 20.12.22 um 18:02 schrieb Csepp: > > Gottfried writes: > >> [[PGP Signed Part:Undecided]] >> Hi Csepp, >> >> this was anyhow my question. >> >>>> In general you do not need to install packages under development in your >>>>> main profile. It would be better to either put it in a separate profile >>>>> or use a temporary shell every time and put the package definition in a >>>>> manifest or script. >> >> >> Until now I installed everything in my main profile >> >> 1. I don't know yet how to create a profile/manifest. >> >> I was reading the cookbook and the manual already several times about >> that, but it seems to me difficult. > > A simple way to do it is: > ``` > guix shell --export-manifest python python-sympy | tee guix.scm > ``` > > It even works with transforms, so let's say you were working on getting > the newest version of Cutter running: > ``` > guix shell --export-manifest --with-latest=cutter cutter | tee guix.scm > ``` > >> 2. If I create an other profile through a manifest >> what is the benefit of it in my case? > > You can load the profile separately and it should be overlaid on top of > your normal profile, shadowing the Musescore binary from it. > The advantage of a persistent profile (as opposed to a manifest on its > own) is that it will survive garbage collection, so you won't be > building the same package again and again. > > Another benefit is that you can upgrade them separately. This is why I > have TeXlive installed in a separate profile, because it is a several > gigabyte download, so I'd rather not have to wait for it every time I > upgrade my default profile. > >> 3. I would have to put all my 60 packages there (how?) and if I >> download an other package, would I have to create the manifest again >> and again? > > No. Profiles are not chroots, or containers, or VMs, or anything like > that. Profiles can be composed. In fact, if you are using Guix System, > you are already using two profiles stacked on top of each other: the > system profile at /run/current-system and your default user profile at > $HOME/.guix-profile. > Packages installed in your system profile do not have to be installed in > your user profile. You *can* install them in it, but it's not > necessary. > Similarly, if you install a different version of Musescore in a separate > profile, that only has to contain Musescore and nothing else. > I have a graphics profile and it only contains a few programs, like > Blender, Inkscape, etc. But for example it does not have Emacs in it, > because Emacs is loaded by my default user profile at > $HOME/.guix-profile. > >> 4. And if I want to update the packages, lets say every second week, >> then I would have to create the manifest again every second week. > > No, the manifest file stays the same. It's just a list of packages. > To upgrade a persistent profile you can just use the usual method: > ``` > guix package --upgrade --profile=/path/to/profile > ``` > > If you don't want to make a persistent profile, you can instead do: > ``` > guix shell --manifest=guix.scm > ``` > >> 5. Would I then have to uninstall all my installed packages in the >> main profile, in order not to have it twice? > > No, see above. > Also having multiple version of a package installed is not a problem on > Guix, only if they are in the same profile. You can have as many > conflicting version as you want, they won't concflict if they are not in > the same profile. > >> 6. How could I then use my manifest? Which commands would I have to >> use to open it and to use my packages? > > For a temporary shell (see above on how to create guix.scm): > ``` > guix shell --manifest=guix.scm > ``` > > For a persistent profile: > ``` > # first create the profile > guix package --profile=/path/to/profile > # then load it > export GUIX_PROFILE=/path/to/profile > source "${GUIX_PROFILE}/etc/profile" > # alternatively: > source /path/to/profile/etc/profile > # there are some subtle differences between the two > ``` > > Caveat for persistent profiles: > if you modify the profile (for example by installing a new package in > it) then you might have to load it again. > More precisely: if the list of environment variables in the profile > changes, you have to reload it. Otherwise if the GUIX_PROFILE > environment variable was defined correctly when you first loaded it, > then you don't have to reload it.