help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: installing of two versions of package Musescore


From: Gottfried
Subject: Re: installing of two versions of package Musescore
Date: Wed, 21 Dec 2022 13:17:06 +0000

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 <gottfried@posteo.de> 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.


Attachment: OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]