all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* installing of two versions of package Musescore
@ 2022-12-19  8:23 Gottfried
  2022-12-19 13:55 ` Csepp
  0 siblings, 1 reply; 12+ messages in thread
From: Gottfried @ 2022-12-19  8:23 UTC (permalink / raw)
  To: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 591 bytes --]

Hi Guix,

I tried to download the new version of Musescore, Version 4
Even thought 100 % available, it wanted to build it locally, but failed. 
(takes 75 minutes)
I tried it again, it failed.
next day I tried it again, it failed.

I checked the Musescore Forum etc
and there are big problems with the new Musescore 4 in Linux.
Several people complained.

How can I now keep the Version 3.6.2
and additionally install the new version 4.0 in future,
so that my current version 3.6.2 does not get lost.

The new version 4.0 needs improvements.


Kind regards

Gottfried


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-19  8:23 installing of two versions of package Musescore Gottfried
@ 2022-12-19 13:55 ` Csepp
  2022-12-19 14:19   ` Gottfried
  0 siblings, 1 reply; 12+ messages in thread
From: Csepp @ 2022-12-19 13:55 UTC (permalink / raw)
  To: Gottfried; +Cc: help-guix


Gottfried <gottfried@posteo.de> writes:

> [[PGP Signed Part:Undecided]]
> Hi Guix,
>
> I tried to download the new version of Musescore, Version 4
> Even thought 100 % available, it wanted to build it locally, but
> failed. (takes 75 minutes)
> I tried it again, it failed.
> next day I tried it again, it failed.
>
> I checked the Musescore Forum etc
> and there are big problems with the new Musescore 4 in Linux.
> Several people complained.
>
> How can I now keep the Version 3.6.2
> and additionally install the new version 4.0 in future,
> so that my current version 3.6.2 does not get lost.
>
> The new version 4.0 needs improvements.
>
>
> Kind regards
>
> Gottfried
>
> [2. OpenPGP public key --- application/pgp-keys; OpenPGP_0x61FAF349C9FB7F94.asc]...
>
> [[End of PGP Signed Part]]

You could pass --do-not-upgrade=musescore if you want to keep it at the
same version in your main profile.
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.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-19 13:55 ` Csepp
@ 2022-12-19 14:19   ` Gottfried
  2022-12-20 17:02     ` Csepp
  0 siblings, 1 reply; 12+ messages in thread
From: Gottfried @ 2022-12-19 14:19 UTC (permalink / raw)
  To: Csepp; +Cc: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 2459 bytes --]

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.

2.  If I create an other profile through a manifest
what is the benefit of it in my case?


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?

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.

5.  Would I then have to uninstall all my installed packages in the main 
profile, in order not to have it twice?

6.  How could I then use my manifest? Which commands would I have to use 
to open it and to use my packages?


Kind regards

Gottfried



Am 19.12.22 um 14:55 schrieb Csepp:
> 
> Gottfried <gottfried@posteo.de> writes:
> 
>> [[PGP Signed Part:Undecided]]
>> Hi Guix,
>>
>> I tried to download the new version of Musescore, Version 4
>> Even thought 100 % available, it wanted to build it locally, but
>> failed. (takes 75 minutes)
>> I tried it again, it failed.
>> next day I tried it again, it failed.
>>
>> I checked the Musescore Forum etc
>> and there are big problems with the new Musescore 4 in Linux.
>> Several people complained.
>>
>> How can I now keep the Version 3.6.2
>> and additionally install the new version 4.0 in future,
>> so that my current version 3.6.2 does not get lost.
>>
>> The new version 4.0 needs improvements.
>>
>>
>> Kind regards
>>
>> Gottfried
>>
>> [2. OpenPGP public key --- application/pgp-keys; OpenPGP_0x61FAF349C9FB7F94.asc]...
>>
>> [[End of PGP Signed Part]]
> 
> You could pass --do-not-upgrade=musescore if you want to keep it at the
> same version in your main profile.
> 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.

-- 



[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-19 14:19   ` Gottfried
@ 2022-12-20 17:02     ` Csepp
  2022-12-21 13:17       ` Gottfried
  2022-12-24 14:08       ` Gottfried
  0 siblings, 2 replies; 12+ messages in thread
From: Csepp @ 2022-12-20 17:02 UTC (permalink / raw)
  To: Gottfried; +Cc: Csepp, help-guix


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.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-20 17:02     ` Csepp
@ 2022-12-21 13:17       ` Gottfried
  2022-12-21 18:06         ` Csepp
  2022-12-21 18:53         ` Wojtek Kosior via
  2022-12-24 14:08       ` Gottfried
  1 sibling, 2 replies; 12+ messages in thread
From: Gottfried @ 2022-12-21 13:17 UTC (permalink / raw)
  To: Csepp; +Cc: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 5534 bytes --]

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 #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-21 13:17       ` Gottfried
@ 2022-12-21 18:06         ` Csepp
  2022-12-22 13:21           ` Gottfried
  2022-12-21 18:53         ` Wojtek Kosior via
  1 sibling, 1 reply; 12+ messages in thread
From: Csepp @ 2022-12-21 18:06 UTC (permalink / raw)
  To: Gottfried; +Cc: Csepp, help-guix


Gottfried <gottfried@posteo.de> writes:
> But which version?
> Should I put the version 3.6.2 in my new profile to keep it,
I'd leave 3.6.2 in my default profile.

> ................................................
>
> 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?

No, it is only lost when `guix gc` is run.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-21 13:17       ` Gottfried
  2022-12-21 18:06         ` Csepp
@ 2022-12-21 18:53         ` Wojtek Kosior via
  1 sibling, 0 replies; 12+ messages in thread
From: Wojtek Kosior via @ 2022-12-21 18:53 UTC (permalink / raw)
  To: Gottfried; +Cc: Csepp, help-guix

[-- Attachment #1: Type: text/plain, Size: 9521 bytes --]

> 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.  
> 
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-21 18:06         ` Csepp
@ 2022-12-22 13:21           ` Gottfried
  2022-12-22 14:47             ` Csepp
  0 siblings, 1 reply; 12+ messages in thread
From: Gottfried @ 2022-12-22 13:21 UTC (permalink / raw)
  To: Csepp; +Cc: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 1299 bytes --]

Hi Csepp

thanks for your answer

> I'd leave 3.6.2 in my default profile.

Does this mean, every time I am doing a

guix pull

and

guix package --upgrade

I have to add:

  --do-not-upgrade musescore

so that musescore stays at the version 3.6.2 ?

(If I forget to add this, than it will upgrade to version 3.4
and I can than only switch back one generation and do the
guix package --upgrade --do-not-upgrade musescore
again)
Is it like this?

Gottfried


Am 21.12.22 um 19:06 schrieb Csepp:
> 
> Gottfried <gottfried@posteo.de> writes:
>> But which version?
>> Should I put the version 3.6.2 in my new profile to keep it,
> I'd leave 3.6.2 in my default profile.
> 
>> ................................................
>>
>> 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?
> 
> No, it is only lost when `guix gc` is run.

-- 
Kind regards

Gottfried

()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

Why is HTML email a security nightmare? See https://useplaintext.email/

Please avoid sending me MS-Office attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-22 13:21           ` Gottfried
@ 2022-12-22 14:47             ` Csepp
  0 siblings, 0 replies; 12+ messages in thread
From: Csepp @ 2022-12-22 14:47 UTC (permalink / raw)
  To: Gottfried; +Cc: Csepp, help-guix


Gottfried <gottfried@posteo.de> writes:

> [[PGP Signed Part:Undecided]]
> Hi Csepp
>
> thanks for your answer
>
>> I'd leave 3.6.2 in my default profile.
>
> Does this mean, every time I am doing a
>
> guix pull
>
> and
>
> guix package --upgrade
>
> I have to add:
>
>  --do-not-upgrade musescore
>
> so that musescore stays at the version 3.6.2 ?
>
> (If I forget to add this, than it will upgrade to version 3.4
> and I can than only switch back one generation and do the
> guix package --upgrade --do-not-upgrade musescore
> again)
> Is it like this?
>
> Gottfried

Well, it will also not upgrade its dependencies in that case.  If you
want to use an old version forever, sure, you can use --do-not-upgrade,
but you could also pin the source to an old version.
For that you would use the --with-branch=musescore=v3.6.2
transformation... I think.
I recommend reading the info page on defining package variants.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-20 17:02     ` Csepp
  2022-12-21 13:17       ` Gottfried
@ 2022-12-24 14:08       ` Gottfried
  2022-12-26 18:33         ` Wojtek Kosior via
  1 sibling, 1 reply; 12+ messages in thread
From: Gottfried @ 2022-12-24 14:08 UTC (permalink / raw)
  To: Csepp, Wojtek Kosior; +Cc: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 5956 bytes --]

Hi Csepp,

1.  I think the best idea in my case is to create a separate profile
with only musescore 3.6.2 in it.

2.  And in my main profile the package musescore will be updated to
version 4.0. and so on.

Later, if version 4.0 will bei o.k. I can delete the profile with 
Musescore 3.6.2

So I am not sure what to write to create this profile with Musescore 3.6.2

3.  I want to have "Musescore3.6.2" as the name of this profile, so that 
I quickly now what is in there. Is that possible? If not how this 
profile is specified to see the difference to my main profile?

4.  what should I write in  "path/to/profile"
because AFAIU the profile will be in
/etc/

like this?:

profileMusescore3.6.2

/etc/profileMusescore3.6.2

"guix package --profileMusescore3.6.2=/etc/profileMusescore3.6.2"


5.  and to load it:

export GUIX_PROFILE=/etc/profileMusescore3.6.2


6.  source "${GUIX-PROFILE}/etc/profileMusescore3.6.2


Sorry, but I am learning to enter into the language of computerists
which is still difficult for me.


Kind regards

Gottfried


> # 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
>> ```




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 #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-24 14:08       ` Gottfried
@ 2022-12-26 18:33         ` Wojtek Kosior via
  2022-12-27 11:30           ` Csepp
  0 siblings, 1 reply; 12+ messages in thread
From: Wojtek Kosior via @ 2022-12-26 18:33 UTC (permalink / raw)
  To: Gottfried; +Cc: Csepp, help-guix

[-- Attachment #1: Type: text/plain, Size: 7914 bytes --]

Hi Gottfried,

> 3.  I want to have "Musescore3.6.2" as the name of this profile, so that 
> I quickly now what is in there. Is that possible? If not how this 
> profile is specified to see the difference to my main profile?
> 
> 4.  what should I write in  "path/to/profile"
> because AFAIU the profile will be in
> /etc/
> 
> like this?:
> 
> profileMusescore3.6.2
> 
> /etc/profileMusescore3.6.2
> 
> "guix package --profileMusescore3.6.2=/etc/profileMusescore3.6.2"

Good news for you — the profile does not need to reside under `/etc/`.
In fact, it would be abnormal to have a non-root user's profile there
since `/etc/` is usually only writeable by root.

User's profiles usually live somewhere under the user's HOME directory.
I'd personally choose a path like `~/.guix-profiles/musescore-3.6.2`.
Someone else would perhaps use `~/.config/guix/Musescore3.6.2`. Just
pick what you like the most.

> Sorry, but I am learning to enter into the language of computerists
> which is still difficult for me.

I think everybody understands that :)

I think you've got the rest right

Good luck,
Wojtek

-- (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!           #44: blessed Salomea
Poznaj świętych krakowskich!  #44: błogosławiona Salomea
https://pl.wikipedia.org/wiki/Błogosławiona_Salomea
-- (sig_end)


On Sat, 24 Dec 2022 14:08:38 +0000
Gottfried <gottfried@posteo.de> wrote:

> Hi Csepp,
> 
> 1.  I think the best idea in my case is to create a separate profile
> with only musescore 3.6.2 in it.
> 
> 2.  And in my main profile the package musescore will be updated to
> version 4.0. and so on.
> 
> Later, if version 4.0 will bei o.k. I can delete the profile with 
> Musescore 3.6.2
> 
> So I am not sure what to write to create this profile with Musescore 3.6.2
> 
> 3.  I want to have "Musescore3.6.2" as the name of this profile, so that 
> I quickly now what is in there. Is that possible? If not how this 
> profile is specified to see the difference to my main profile?
> 
> 4.  what should I write in  "path/to/profile"
> because AFAIU the profile will be in
> /etc/
> 
> like this?:
> 
> profileMusescore3.6.2
> 
> /etc/profileMusescore3.6.2
> 
> "guix package --profileMusescore3.6.2=/etc/profileMusescore3.6.2"
> 
> 
> 5.  and to load it:
> 
> export GUIX_PROFILE=/etc/profileMusescore3.6.2
> 
> 
> 6.  source "${GUIX-PROFILE}/etc/profileMusescore3.6.2
> 
> 
> Sorry, but I am learning to enter into the language of computerists
> which is still difficult for me.
> 
> 
> Kind regards
> 
> Gottfried
> 
> 
> > # 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
> >> ```  
> 
> 
> 
> 
> 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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: installing of two versions of package Musescore
  2022-12-26 18:33         ` Wojtek Kosior via
@ 2022-12-27 11:30           ` Csepp
  0 siblings, 0 replies; 12+ messages in thread
From: Csepp @ 2022-12-27 11:30 UTC (permalink / raw)
  To: Wojtek Kosior; +Cc: Gottfried, Csepp, help-guix


Wojtek Kosior <koszko@koszko.org> writes:

> [[PGP Signed Part:Undecided]]
> Hi Gottfried,
>
>> 3.  I want to have "Musescore3.6.2" as the name of this profile, so that 
>> I quickly now what is in there. Is that possible? If not how this 
>> profile is specified to see the difference to my main profile?
>> 
>> 4.  what should I write in  "path/to/profile"
>> because AFAIU the profile will be in
>> /etc/
>> 
>> like this?:
>> 
>> profileMusescore3.6.2
>> 
>> /etc/profileMusescore3.6.2
>> 
>> "guix package --profileMusescore3.6.2=/etc/profileMusescore3.6.2"
>
> Good news for you — the profile does not need to reside under `/etc/`.
> In fact, it would be abnormal to have a non-root user's profile there
> since `/etc/` is usually only writeable by root.
>
> User's profiles usually live somewhere under the user's HOME directory.
> I'd personally choose a path like `~/.guix-profiles/musescore-3.6.2`.
> Someone else would perhaps use `~/.config/guix/Musescore3.6.2`. Just
> pick what you like the most.

I usually put them in project specific directories, like so:
"$HOME/Graphics/.guix-profile"
"$HOME/Projects/Advent of Code/2022/.guix-profile"
and so on...

I find that it's much easier to use than if they were centralized under
one directory, because this way they are close to the project they
correspond to.

Also, a useful command to know:
guix package --list-profiles


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-12-27 11:34 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-19  8:23 installing of two versions of package Musescore Gottfried
2022-12-19 13:55 ` Csepp
2022-12-19 14:19   ` Gottfried
2022-12-20 17:02     ` Csepp
2022-12-21 13:17       ` Gottfried
2022-12-21 18:06         ` Csepp
2022-12-22 13:21           ` Gottfried
2022-12-22 14:47             ` Csepp
2022-12-21 18:53         ` Wojtek Kosior via
2022-12-24 14:08       ` Gottfried
2022-12-26 18:33         ` Wojtek Kosior via
2022-12-27 11:30           ` Csepp

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.