From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id IOwDCY8AomPUzwAAbAwnHQ (envelope-from ) for ; Tue, 20 Dec 2022 19:35:59 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id CIDyB48AomMXFAAAG6o9tA (envelope-from ) for ; Tue, 20 Dec 2022 19:35:59 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id CBB83EB02 for ; Tue, 20 Dec 2022 19:35:58 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p7gO7-0001HK-IT; Tue, 20 Dec 2022 12:26:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p7gO5-0001H2-M4 for help-guix@gnu.org; Tue, 20 Dec 2022 12:26:45 -0500 Received: from mx1.riseup.net ([198.252.153.129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p7gO3-0004wc-Ak for help-guix@gnu.org; Tue, 20 Dec 2022 12:26:45 -0500 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.riseup.net", Issuer "R3" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4Nc3QY5mg0zDqFJ; Tue, 20 Dec 2022 17:26:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1671557200; bh=NKSWXZm487DUE8RpYn8NmhxkXkzggJ33xt8MFNFruWI=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=BBKUCGIDHMyaroKN9Tnd03DStuB0ND9fE+mp3DmISi/ylmcH/j3avf1ro89PsoeVh teiNoWMYb+d7pbbulO4Fhxfgtjs75qbAytznmvLK+4JI1Zs0QgnPzwQrwLsHUzjitM 49r6tkJ48NenomJMZwHsNCoS1tfqs9p86RFg73Mo= X-Riseup-User-ID: DDA2DBC62D1CB24E33353D386FCA6CCAC3ACA44FF7F8ACCA0ED516C300F49F58 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4Nc3QY09lDz5vLV; Tue, 20 Dec 2022 17:26:28 +0000 (UTC) References: <89e84b0b-0e63-01c7-9d44-2e6e3fd30641@posteo.de> <87v8m7o5qv.fsf@riseup.net> From: Csepp To: Gottfried Cc: Csepp , help-guix@gnu.org Subject: Re: installing of two versions of package Musescore Date: Tue, 20 Dec 2022 18:02:36 +0100 In-reply-to: Message-ID: <87mt7iugu7.fsf@riseup.net> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=198.252.153.129; envelope-from=raingloom@riseup.net; helo=mx1.riseup.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=BBKUCGID; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=riseup.net ARC-Seal: i=1; s=key1; d=yhetil.org; t=1671561358; a=rsa-sha256; cv=none; b=YdNsNINbAH+UPubbokrZ/bLnkQW1gltAqUMdrd0Sbp/bqGy7T9z8n+A2qVinJzLj3JH46b QuQiahTj8aad+KKIUIRoW67UrSYKC2r4GvNzMFB2fqu5VJ4xBMEEYojsKt8kP/MCkYw3+t LXackKz11WXlv8S/hy1GZjCMTPTJz6yILS2kGAKYCuwzEzlUbfvwZ1oRzMm1XHOFcnHNLT rNO/PW5U2miDGlsRrS+rO7+kEKrWtfZGO8+lMG3GE4Kxi2+7JSU/ePnyOvCPWEfzBx78E6 U3wKIWxVHzlgWCQdWBXXmB5cn81c6ek/KFgEC73C+DZJn7YjOsSpGiv6KW4kaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1671561358; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=CDbirs/doyVtCr/wxcsUHnqsfBCXaVETuLwh4KrEOyA=; b=ITy4jczpGDPJm+s9vqQvt4ezMj4u8Dl9cVPha63q/1EK+vEA6YS/KwH4XEnUl4Fu0PmhK2 IG8UOhbPs31YprMy8PtdkYivOXi8Q0N6kYMXccBWI9eJwyTwF7YFjggwjLIZIq2m2s11ql As91Na1L2aDKbBs2spnsN7FhbMk+0zBYfkc4Hko6NdeFDSiToCigZ3YjERtfMW5uWV5jRp IQ/ESlpmYHBrO2DSxxlsB4p8NAIWH0UZ403h4CkFKNALWFdY9piFAnfrBQcfySWJZGizhZ yG2mVSNYv2yPmzBX8W5qlt9hPGBCAet087nwvLB6zrvn4eJIIsT/MMZkKxsyQw== X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=BBKUCGID; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=riseup.net X-Migadu-Spam-Score: -11.30 X-Spam-Score: -11.30 X-Migadu-Queue-Id: CBB83EB02 X-TUID: 69h6gQY1xEN2 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.