From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id KI2JAtzsqWJeygAAbAwnHQ (envelope-from ) for ; Wed, 15 Jun 2022 16:29:48 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id QDaCAtzsqWLWmwAAauVa8A (envelope-from ) for ; Wed, 15 Jun 2022 16:29:48 +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 70B35E210 for ; Wed, 15 Jun 2022 16:29:47 +0200 (CEST) Received: from localhost ([::1]:34392 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o1U1i-0001Ba-EX for larch@yhetil.org; Wed, 15 Jun 2022 10:29:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40958) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1U1X-0001BJ-9a for help-guix@gnu.org; Wed, 15 Jun 2022 10:29:35 -0400 Received: from knopi.disroot.org ([178.21.23.139]:46570) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1U1R-0008LB-N2 for help-guix@gnu.org; Wed, 15 Jun 2022 10:29:34 -0400 Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id CB95743B1A; Wed, 15 Jun 2022 16:29:24 +0200 (CEST) X-Virus-Scanned: SPAM Filter at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with UTF8SMTP id WjAdJYbrUPEH; Wed, 15 Jun 2022 16:29:23 +0200 (CEST) References: <878rpz9t3f.fsf@eml.cc> <87sfo6wqi3.fsf@eml.cc> <87fsk68oy1.fsf@eml.cc> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1655303186; bh=ko3uT3VVTeZL+y3ZKNn9/I+tVieEkZYgaBgoBYKrCWY=; h=References:Date:From:To:Cc:Subject:In-reply-to; b=mXtFTRFLlH2nJV0VGMKGNgGf3ErnLTRq9Vx2G0KAHa60sTEcmwRxK5soOqHfQoScZ jPOKu4eBloXA2thl3b7oBa8NJruMljSB7UzGZvr+BifvzODYPLgqqEotx4jffS4Xek S45QdaZVk1mToRKAt8LRQD9Wxha0SyCaxOzSnqFBraPKeLgGHrTBj8yw28o7gBz9Z8 +lKbJqqkJdZD28rRJQktp3Os7hp4veL5D8DQMrlKROVnzkz08nrl/fG8VFFgXMmres gPBeXHbkUy0sjWLY6G3JDj1vmRpN4S4kxYjZUSe2Lid8DRUofuyCuUj16LsjNgzjj8 /SCqDpAY/fp1Q== Date: Wed, 15 Jun 2022 09:48:54 -0400 From: Gary Johnson To: sebastien.rey-coyrehourcq@univ-rouen.fr Cc: Tangonov , Efraim Flashner , help-guix@gnu.org Subject: Re: Guix home package confusion In-reply-to: Message-ID: <874k0m57g2.fsf@disroot.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=178.21.23.139; envelope-from=lambdatronic@disroot.org; helo=knopi.disroot.org 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, 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-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" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1655303387; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=movcLyjD4CrqqqgxoqmzcJHO32lkaRbwydFb4Or3WsI=; b=jXcdHURj6sEv4xIumkpsxhc7B2CHGXFWJ5iPsRcPK4EWThny2Q6YXki/WtWBJQ4l2ktrRy qTWddCSFh6KTsWM09F8DJMi6a8EP0gxoMADDlclI4i91kJR9u5MCEiGaFXrdCPFM/gO8fu xAGOfDrjtm6hVY/QmUeF/7pMMXvGcp4UOlOISp4tbbYRymZxHHs6RM8ra2bvgTlKWgkPzX aPfRMrOLuXrRN4EOyfJ+qyHwKXX+b8/2HCGIvk9dzpmmQvMcq76Iw9F0gyJHzUZ1A3w/Tg 8O/WbNGGtAWlQ4Xx4SOcQbqAbAtKVQZAhUcldD8Vl6DH9qrpS5oyC5PJFdUmOw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1655303387; a=rsa-sha256; cv=none; b=QZHQ9W8B535QDlHTtqkTZ3tn2yxsBE43U2mgqDVYrx/4Zt1Q5HiAc9fw06XfiL8iW7WrsG a7jHC8UsLntrgwAYVoL5s1+5fUdbdEU0LL6qzh+haanRnFjsEY5JbZNUTzfUjqaD5EQZsV gwBhH4HMKPyoRWO2uyQyDK2TA7bG6IwNK3+OqICY0tZg+TRn1nkWyPLksr0ZKdr2exb0u0 dyfUxWMjATnOK4DE2NPP3m32zRJfINbpd7rn09KsnYGX1+xlu3UPGrEh0D/xdD9mrTpRvm dEFwR7pJBZolGqntlbvjUtClfd1PA8dY48Pfp3nyNJOThmXgezIyE3AgyxgRIQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=disroot.org header.s=mail header.b=mXtFTRFL; dmarc=pass (policy=quarantine) header.from=disroot.org; 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" X-Migadu-Spam-Score: -3.49 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=disroot.org header.s=mail header.b=mXtFTRFL; dmarc=pass (policy=quarantine) header.from=disroot.org; 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" X-Migadu-Queue-Id: 70B35E210 X-Spam-Score: -3.49 X-Migadu-Scanner: scn1.migadu.com X-TUID: NpF7mmgzNfK3 S=C3=A9bastien Rey-Coyrehourcq wr= ites: > Hi, > > Happy to see i'm not alone, a little lost when jumping into the guix > home bath ;) > > I think there is something to do (a schema, a table ?) to better > visualize relation between guix home, guix system, guix install, guix > package for the beginer. That could help a lot when you start your > workflow from scratch and you don't know how thing relate each others. > > A list with dotfile shared by others, like sqrtminus / dominicm could > also help (copy / pasting and learning from others). > > Best regards > > Src This has been an interesting thread, and I'm glad the OP eventually worked out a solution for using these tools together. In my setup, I use these three approaches: 1. guix system Installs global packages, runs system services, and creates everything in my filesystem outside of /home/$USER. 2. guix home Installs local packages for $USER, runs user services, and creates all of my dotfiles in /home/$USER, including my shell config files (i.e., .bashrc, .bash_profile, .bash_logout). 3. guix package w/ manifests Installs local packages for $USER in package groups. For example, I place emacs and all of its packages into a manifest called emacs.scm, which is installed into my emacs profile. I make similar manifest/profile pairs for all the groups of packages on my system. Here are my current manifests (chromium, emacs, flatpak, matterhorn, media, network, programming, qgis, sysutils, texlive, wine). I then have a script that loops over all of my manifests and updates each profile whenever I run `guix pull`. There are (at least) two advantages to this approach over using `guix package` without manifests: 1. If `guix weather` indicates that no binary substitute exists yet for a large package like ungoogled-chromium, qgis, texlive, or wine, I can simply upgrade all of my other profiles now and wait until a substitute is available before upgrading the large package's profile. 2. If one package fails to build, only its profile doesn't get upgraded. All of my other profiles can still be upgraded successfully. Then I can go about debugging the broken package at my leisure (or wait until the next `guix pull` fixes it) and just worry about rebuilding the one upgraded profile at that time. The main thing to remember when working with Guix is that no matter which method you use to install a package, it will only be built and installed once into /gnu/store as long as you are using the same guix revision (or the same revisions of a particular combination of channels) and the same package definition. The different installation commands (guix system, guix home, guix package) just create your profile directory (containing symlinks back to /gnu/store) in different places on your filesystem. To see the packages installed via `guix system`, use this: guix package --profile=3D/var/guix/profiles/system/profile -I To see the packages installed via `guix home`, use this: guix package --profile=3D$HOME/.guix-home/profile -I To see the packages installed via `guix package` without manifests, use this: guix package -I or if you want to be explicit: guix package --profile=3D$HOME/.guix-profile -I To see the packages installed via `guix package` with manifests, use this: guix package --profile=3D$PATH_TO_YOUR_PROFILE -I Hopefully by now the pattern should be apparent. ;) The truly IMPORTANT thing to keep in mind when using multiple profiles is that you have to add them to your login shell's PATH, MANPATH, and INFOPATH environment variables in order to actually be able to use (and read documentation about) the packages they contain. I source the following script in my ~/.bash_profile for this purpose: ``` #!/bin/sh GUIX_PROFILES=3D$PATH_TO_YOUR_PROFILES_DIRECTORY for dir in $GUIX_PROFILES/* do name=3D$(basename "$dir") profile=3D$dir/$name if [ -f "$profile"/etc/profile ] then GUIX_PROFILE=3D"$profile" . "$GUIX_PROFILE"/etc/profile export MANPATH=3D"$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH" export INFOPATH=3D"$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH" fi unset profile unset name done ``` I hope this info helps someone out there improve their Guix configuration. That's all I've got for now, so have fun and happy hacking! ~Gary --=20 GPG Key ID: 7BC158ED Use `gpg --search-keys lambdatronic' to find me Protect yourself from surveillance: https://emailselfdefense.fsf.org =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D () 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