From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id mPWbHC/HdGRFYwEASxT56A (envelope-from ) for ; Mon, 29 May 2023 17:39:27 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id sL16HC/HdGSbZgAAauVa8A (envelope-from ) for ; Mon, 29 May 2023 17:39:27 +0200 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 0A0DC2A2EA for ; Mon, 29 May 2023 17:39:27 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3ejD-0003nw-EK; Mon, 29 May 2023 11:24:11 -0400 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 1q2gqN-0000F4-Jm for guix-devel@gnu.org; Fri, 26 May 2023 19:27:35 -0400 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q2gqG-0001M7-Rp for guix-devel@gnu.org; Fri, 26 May 2023 19:27:35 -0400 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-973bf581759so221946966b.0 for ; Fri, 26 May 2023 16:27:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685143646; x=1687735646; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=y5UyiBeZIDztd7VR/bJ7H+kQ2414hgj04afqDIVu5AA=; b=G3KW+6lZI+9wawPBRygLc2M1eOBzU6A8P7yppH94nzwEq7LBWBiCeywGd8hXVKAtvb /uKgdDhfRbLkEt3i/ftR4CZzLrog8PGuLtxA3QKlDqUhiO/dN8VY1z65Sv10AbxDF7hP eNurmIyU0zPI3GoDXHRTtRk5ri33KesjjARbrb+46ytWAnCzrYTMWp8WIjCh7bhY01U/ 3SPvL2yHnHoopbeyEBYhDGauAJf1dOZEpTmXkH0oEbHNTy3YCiCcghwKkN23J6fk9FTu xdT04Y2nB1GvvIbd3rRwy8yK1FWPaJyKF6ogCNGbBNjsQz6X76mQCWJ7GHEUqlRSiBIN fMgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685143646; x=1687735646; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=y5UyiBeZIDztd7VR/bJ7H+kQ2414hgj04afqDIVu5AA=; b=eWs3KRqZ7B2czNFwc9Rx1wvP2JPhOhHQWVfDa8TIxkfUfQcFij8ae+nQaaXJiuTACU BChXMtdxvp70Dq4+0pHZuPKm6cgBd2+yt7EeUZFzmRQnLzZQiDWtqyASvESf1GfjxeFx PgnqmzzITiaFM3y9TBW/o/Z7fs8fp4eFkq3ZSY+64CZYmnnqM4XBkQBT6lapMygkmgAb tPwggzQ+zimj7moN+lkb/dbaVEUKJ1m3kbN7pFx3dC2VgQ8ErjNBfflmNk5W4/V34v0V rEgE0M6qo1p1Tqt156Nk3swNZm6xWqizM2Pp4CJELeXJK684EsS8vQccwPemBnKiZ1zP ynCw== X-Gm-Message-State: AC+VfDwWf89WLu+zPMVmeIN1Cylu8156bIplZlWuFqgHyMtmv5QevWwn ACA7CoIWg5fVskZNUaIj8mCsKPJhX3BeKe9+AH0= X-Google-Smtp-Source: ACHHUZ4pQ2lTOlsB/tHtN8ktrBlm2YHZzIeGwciCWBQi45eMtHaYMd4J/SvXOt5Ty1hghi9pRzAkCS89CkKEJSO2n0M= X-Received: by 2002:a17:906:9747:b0:973:797b:50de with SMTP id o7-20020a170906974700b00973797b50demr3584068ejy.60.1685143646226; Fri, 26 May 2023 16:27:26 -0700 (PDT) MIME-Version: 1.0 References: <875y8oz4ab.fsf@gmail.com> In-Reply-To: From: Timothy Washington Date: Fri, 26 May 2023 19:27:14 -0400 Message-ID: Subject: Re: Howto reference a custom package from a manifest To: Kaelyn Cc: Simon Tournier , Guix Devel Content-Type: multipart/alternative; boundary="0000000000006dcb4005fca114fa" Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=twashing@gmail.com; helo=mail-ej1-x62c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Mon, 29 May 2023 11:24:06 -0400 X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1685374767; a=rsa-sha256; cv=none; b=iAC8Ka+o0x7oMS+t25eFdJB95PXcKJki1jE4nXq4sBfKXgHclIpINQz976p5U0S487gE/b z20VgxDB8dk++B+ZyrlBLrPte6sV8ARWQuUQXKEh2jW1aho9VKNFk/4HwZvPnO+5RHyW3Q OZMRDYwTHAop6YTXs5NTrpisPWCUC0XIjwOUbtup1Y7Bzu1AgdX12XRh37stm01gKBIQdm o4XN+CPzwsUbbOViTgf81Z0CMpTFsw/rRpON3cLjsuQCqP5ibLesnS3SAENiyzXH+TgkZC FI6f19CqCgH3PiONCaygo8NnFgbzoD1R0Pqzd9S2mR9ghPSELR4YVLwzmQrQmg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=G3KW+6lZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1685374767; 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=y5UyiBeZIDztd7VR/bJ7H+kQ2414hgj04afqDIVu5AA=; b=pspnUd3uV6lXiSWlwtlw7nmDWv+quPMEPzeoUAS22c45/fDp9S/NxdcgkJuWClYhNnOo7I d8dIaFT5rGyQjvqgcx83q0YX9AXOV6XBhvzz+WYH7wdwDJCVMmOYc3le4RW6bQVLnAfR4/ SF5l7eg/g0ZPWagdjfGnU7SwHKPqjIk+7AI/Q5u6BXHjYjPjdiDVSZdDjfTK0aKpk8yI+7 6bt3epeMoHXrfhA6wSMoT1QimYN0hHc1xjRqas9J2AXRUT8ECZmHzH2n2WnziFaOkX5rDv 8b3zB3F+Xmopm/brZIeaYzXcv9cHmwDkEmXWWw+Vb+ySIp1Dodoz3Kjqo4Yk8g== X-Migadu-Spam-Score: -5.30 X-Spam-Score: -5.30 X-Migadu-Queue-Id: 0A0DC2A2EA X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=G3KW+6lZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-TUID: ALTOpJ3RBzbg --0000000000006dcb4005fca114fa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks very much Kaelyn. This clarifies things a lot =F0=9F=91=8F Tim On Wed, 24 May 2023 at 18:17, Kaelyn wrote: > > ------- Original Message ------- > On Wednesday, May 24th, 2023 at 8:25 PM, Timothy Washington < > twashing@gmail.com> wrote: > > > > . This is expected. When you ran the "guix package -L ~/dotfiles/ -m > ~/dotfiles/guix/packages/manifest.scm" command above, that not only built > the manifest but also > > used the manifest to create a new generation of > /home/twashing/.guix-profile. > > > > Ah I see. > > > > . If you run "guix package --list-generations" you should see a list of > all of the existing (numbered) generations with the currently active > generation marked > > (it's typically the last / latest generation, and should be in this > case). > > . Running "guix package -I" will list the packages in the current > generation of your default guix profile, > > which should contain the packages in your manifest. > > > > . To go into more details about how profiles work: unless you specify > the "-p" argument to "guix package", > > it will operate on your default profile when installing or removing > packages (including through using manifests with "-m"), > > and create a new generation when the set of installed packages changes. > > > > . /home/twashing/.guix-profile is a symlink to > /var/guix/profiles/per-user/twashing/guix-profile, > > which in turn is a symlink to one of the numbered symlinks in that same > /var/guix directory (i.e. if your current generation number is 14, then > /var/guix/profiles/per-user/twashing/guix-profile will point to > /var/guix/profiles/per-user/twashing/guix-profile-14-link). > > > > . Each of those numbered symlinks points to the actual profile in > /gnu/store, > > so using that hypothetical generation 14 as the one created by your > "guix package -m" command above, > > /var/guix/profiles/per-user/twashing/guix-profile-14-link would be a > symlink to /gnu/store/sqaz4ff2nshfizfh8ymbzllia6lsgnfv-profile. > > > > This is really useful for my understanding. Thank-you! > > > > But when I restart my machine, the currently installed tools (from "gui= x > package -i foo") are not available on login. > > For example, I manually ran "guix package -i tree git". And after > restarting my machine, those were no longer available, even though > presumably they should have been part of my latest generation. > > I do remember trying to load the tools like below. But git and tree wer= e > still not available. > > ". /home/twashing/.guix-profile/etc/profile" > > > > Are tools in generations cumulative? > > They are when installed or removed via "guix package -i" and "guix packag= e > -r". Updating your profile using a manifest is not cumulative--the new > generation of your profile will have exactly the set of packages in the > manifest. You can then use "guix package -i" and "guix package -r" to > modify the installed set, but the set will be reset if/when "guix package > -m my-manifest.scm" is run. > > > And how can I load the cumulative sum of all my generations, and any > custom profiles I create? > > The most reproducible way to maintain the set of packages in your default > profile is to include them in your manifest (e.g. adding git and tree to > the list of packages included in the manifest, then running "guix package > -m your-manifest.scm" again). The generations of a profile are like git > commits or filesystem snapshots in that they represent the profile at > different points in time, and they aren't really meant to be composed > together. If you'd like to maintain separate profiles for different sets = of > packages or groups of functionality instead of installing all the things > you need in your default profile, I might recommend taking a look at the > Guix Cookbook, in particular > https://guix.gnu.org/cookbook/en/html_node/Guix-Profiles-in-Practice.html= . > > On a different tack, if you have no issue with installing all of the > packages you need in a single profile using a manifest, and you'd like a > way of managing at least some of your home configuration (shell aliases, > simple config files, etc), there is also "guix home" for a declarative wa= y > of specify those pieces: > https://guix.gnu.org/en/manual/devel/en/html_node/Home-Configuration.html= . > In a manner of speaking, it is to your home directory what "guix system" = is > to the OS when booting Guix. > > Cheers, > Kaelyn > --0000000000006dcb4005fca114fa Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks very much=C2=A0Kaelyn.

This clarifies things a lot=C2=A0=F0=9F=91=8F

Tim=C2=A0


On= Wed, 24 May 2023 at 18:17, Kaelyn <kaelyn.alexi@protonmail.com> wrote:

------- Original Message -------
On Wednesday, May 24th, 2023 at 8:25 PM, Timothy Washington <twashing@gmail.com> wro= te:


> . This is expected. When you ran the "guix package -L ~/dotfiles/= -m ~/dotfiles/guix/packages/manifest.scm" command above, that not onl= y built the manifest but also
> used the manifest to create a new generation of /home/twashing/.guix-p= rofile.
>
> Ah I see.
>
> . If you run "guix package --list-generations" you should se= e a list of all of the existing (numbered) generations with the currently a= ctive generation marked
> (it's typically the last / latest generation, and should be in thi= s case).
> . Running "guix package -I" will list the packages in the cu= rrent generation of your default guix profile,
> which should contain the packages in your manifest.
>
> . To go into more details about how profiles work: unless you specify = the "-p" argument to "guix package",
> it will operate on your default profile when installing or removing pa= ckages (including through using manifests with "-m"),
> and create a new generation when the set of installed packages changes= .
>
> . /home/twashing/.guix-profile is a symlink to /var/guix/profiles/per-= user/twashing/guix-profile,
> which in turn is a symlink to one of the numbered symlinks in that sam= e /var/guix directory (i.e. if your current generation number is 14, then /= var/guix/profiles/per-user/twashing/guix-profile will point to /var/guix/pr= ofiles/per-user/twashing/guix-profile-14-link).
>
> . Each of those numbered symlinks points to the actual profile in /gnu= /store,
> so using that hypothetical generation 14 as the one created by your &q= uot;guix package -m" command above,
> /var/guix/profiles/per-user/twashing/guix-profile-14-link would be a s= ymlink to /gnu/store/sqaz4ff2nshfizfh8ymbzllia6lsgnfv-profile.
>
> This is really useful for my understanding. Thank-you!
>
> But when I restart my machine, the currently installed tools (from &qu= ot;guix package -i foo") are not available on login.
> For example, I manually ran "guix package -i tree git". And = after restarting my machine, those were no longer available, even though pr= esumably they should have been part of my latest generation.
> I do remember trying to load the tools like below. But git and tree we= re still not available.
> ". /home/twashing/.guix-profile/etc/profile"
>
> Are tools in generations cumulative?

They are when installed or removed via "guix package -i" and &quo= t;guix package -r". Updating your profile using a manifest is not cumu= lative--the new generation of your profile will have exactly the set of pac= kages in the manifest. You can then use "guix package -i" and &qu= ot;guix package -r" to modify the installed set, but the set will be r= eset if/when "guix package -m my-manifest.scm" is run.

> And how can I load the cumulative sum of all my generations, and any c= ustom profiles I create?

The most reproducible way to maintain the set of packages in your default p= rofile is to include them in your manifest (e.g. adding git and tree to the= list of packages included in the manifest, then running "guix package= -m your-manifest.scm" again). The generations of a profile are like g= it commits or filesystem snapshots in that they represent the profile at di= fferent points in time, and they aren't really meant to be composed tog= ether. If you'd like to maintain separate profiles for different sets o= f packages or groups of functionality instead of installing all the things = you need in your default profile, I might recommend taking a look at the Gu= ix Cookbook, in particular = https://guix.gnu.org/cookbook/en/html_node/Guix-Profiles-in-Practice.html.

On a different tack, if you have no issue with installing all of the packag= es you need in a single profile using a manifest, and you'd like a way = of managing at least some of your home configuration (shell aliases, simple= config files, etc), there is also "guix home" for a declarative = way of specify those pieces:
https://guix.gnu.org/en/manual/devel/en/html_node/Home-Configuration.html= . In a manner of speaking, it is to your home directory what "guix= system" is to the OS when booting Guix.

Cheers,
Kaelyn
--0000000000006dcb4005fca114fa--