unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Gottfried <gottfried@posteo.de>
To: Csepp <raingloom@riseup.net>, Wojtek Kosior <koszko@koszko.org>
Cc: help-guix@gnu.org
Subject: Re: installing of two versions of package Musescore
Date: Sat, 24 Dec 2022 14:08:38 +0000	[thread overview]
Message-ID: <290ffc04-7511-daf9-eae3-fb659c93d18f@posteo.de> (raw)
In-Reply-To: <87mt7iugu7.fsf@riseup.net>


[-- 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 --]

  parent reply	other threads:[~2022-12-24 14:09 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2022-12-26 18:33         ` Wojtek Kosior via
2022-12-27 11:30           ` Csepp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=290ffc04-7511-daf9-eae3-fb659c93d18f@posteo.de \
    --to=gottfried@posteo.de \
    --cc=help-guix@gnu.org \
    --cc=koszko@koszko.org \
    --cc=raingloom@riseup.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).