[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: installing of two versions of package Musescore
From: |
Wojtek Kosior |
Subject: |
Re: installing of two versions of package Musescore |
Date: |
Wed, 21 Dec 2022 19:53:57 +0100 |
> I understood that the best would be to create a separate profile
> and have Musescore in it.
>
> But which version?
> [...]
> ................................................
> 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.
> ................................................
You can still install 3.6.2 by using `guix time-machine`[1].
Nevertheless, I'm under impression we're missing something. Since I
subscribed to the help-guix mailing list, I've seen at least 2
questions about `guix upgrade` giving some stupid errors. Experienced
users then recommended using manifests instead.
What has just been suggested to you and what we are considering now is
- creating a profile using a manifest
- and later updating that profile using `guix upgrade`.
While this is possible, it seems we're missing the opportunity that
manifests give us — to manage the already-existing profiles
declaratively, through code. This way we can ditch the `guix upgrade`
altogether. I believe this is what some of those people actually meant.
Let me quote part of the `-m` option description from the "Invoking
guix package" section of the Guix manual
> --manifest=file
> -m file
> Create a new generation of the profile from the manifest object returned by
> the
> Scheme code in file. This option can be repeated several times, in which case
> the manifests are concatenated.
> This allows you to declare the profile’s contents rather than constructing it
> through a sequence of --install and similar commands. The advantage is that
> file can be put under version control, copied to different machines to
> reproduce
> the same profile, and so on.
What does this mean? That instead of updating with shell commands like
guix pull
guix package --upgrade # optionally add `-p` option here
you can update with
guix pull
guix package --manifest path/to/your/manifest.scm # optionally add `-p`
option here
Also, instead of installing new packages with e.g.
guix package --install guile-frobnicator # optionally add `-p` option here
you'd just include the desired package ("guile-frobnicator" in this
case) in your manifest file and repeat the
guix package --manifest path/to/your/manifest.scm # optionally add `-p`
option here
Now, there's one more thing worth noting. In order to install an older
version of the musescore package with manifests, you can't just use the
`guix time-machine` command as I suggested before. Or, well, you could
but then *all* packages in the profile would end up being taken from an
older guix version.
Instead, manifests allow you to use Inferiors (described here[2]) which
provide an analogous feature to `guix time-machine` but through a Guile
API.
I hope I helped and not made it unbearably complex to grasp 😅
Best luck, happy hacking,
Wojtek
[1]
https://guix.gnu.org/en/manual/en/html_node/Invoking-guix-time_002dmachine.html#Invoking-guix-time_002dmachine
[2] https://guix.gnu.org/manual/en/html_node/Inferiors.html
-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A
Meet Kraków saints! #43: saint Rafał Kalinowski
Poznaj świętych krakowskich! #43: święty Rafał Kalinowski
https://pl.wikipedia.org/wiki/Rafał_Kalinowski
-- (sig_end)
On Wed, 21 Dec 2022 13:17:06 +0000
Gottfried <gottfried@posteo.de> wrote:
> 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.
>
>
pgpgOPjfhO8Kh.pgp
Description: OpenPGP digital signature
- installing of two versions of package Musescore, Gottfried, 2022/12/19
- Re: installing of two versions of package Musescore, Csepp, 2022/12/19
- Re: installing of two versions of package Musescore, Gottfried, 2022/12/19
- Re: installing of two versions of package Musescore, Csepp, 2022/12/20
- Re: installing of two versions of package Musescore, Gottfried, 2022/12/21
- Re: installing of two versions of package Musescore, Csepp, 2022/12/21
- Re: installing of two versions of package Musescore, Gottfried, 2022/12/22
- Re: installing of two versions of package Musescore, Csepp, 2022/12/22
- Re: installing of two versions of package Musescore,
Wojtek Kosior <=
- Re: installing of two versions of package Musescore, Gottfried, 2022/12/24
- Re: installing of two versions of package Musescore, Wojtek Kosior, 2022/12/26
- Re: installing of two versions of package Musescore, Csepp, 2022/12/27