unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Guix home package confusion
@ 2022-06-14 15:05 Tangonov
  2022-06-14 18:41 ` Efraim Flashner
  0 siblings, 1 reply; 6+ messages in thread
From: Tangonov @ 2022-06-14 15:05 UTC (permalink / raw)
  To: help-guix

I am trying out guix for the first time and feel like I may have 
jumped in head-first into the shallow end of the pool.

I had started out with using guix package for my packages and 
updated my env for around 30 generations. Then I discovered guix 
home and thought "hey, that may be better".

I set up guix home following the documentation and it created my 
first home generation and completely re-installed my packages.

However, after subsequent changes to my home config, a guix home 
reconfigure is now attempting to re-install (and build) my 
packages all over again, despite never having run a guix pull.

I tried to "undo" the initialization of guix home as I feel like I 
maybe should stick to the "older way" for a while longer while I 
get the hang of Guile Scheme and try not to change too much at 
once. I have been unable to revert my initial revision, or find a 
clear path back without doing something dramatic.

With all of my history in mind, I have 3 questions:

1. Is there a supported way to apply incremental changes in guix 
home, without re-doing (and re-compiling) all of my software?
2. Is there a supported way to revert back to just using GNU Stow 
and guix package?
3. If I can be happy with guix home, is there any supported way to 
remove potential bloat from having run guix package for 30 
generations?

Thanks for the incredible software and help, if you're able.

-- 

- Tangonov


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

* Re: Guix home package confusion
  2022-06-14 15:05 Guix home package confusion Tangonov
@ 2022-06-14 18:41 ` Efraim Flashner
  2022-06-15  3:20   ` Tangonov
  0 siblings, 1 reply; 6+ messages in thread
From: Efraim Flashner @ 2022-06-14 18:41 UTC (permalink / raw)
  To: Tangonov; +Cc: help-guix

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

On Tue, Jun 14, 2022 at 08:05:45AM -0700, Tangonov wrote:
> I am trying out guix for the first time and feel like I may have jumped in
> head-first into the shallow end of the pool.
> 
> I had started out with using guix package for my packages and updated my env
> for around 30 generations. Then I discovered guix home and thought "hey,
> that may be better".
> 
> I set up guix home following the documentation and it created my first home
> generation and completely re-installed my packages.
> 
> However, after subsequent changes to my home config, a guix home reconfigure
> is now attempting to re-install (and build) my packages all over again,
> despite never having run a guix pull.
> 
> I tried to "undo" the initialization of guix home as I feel like I maybe
> should stick to the "older way" for a while longer while I get the hang of
> Guile Scheme and try not to change too much at once. I have been unable to
> revert my initial revision, or find a clear path back without doing
> something dramatic.
> 
> With all of my history in mind, I have 3 questions:
> 
> 1. Is there a supported way to apply incremental changes in guix home,
> without re-doing (and re-compiling) all of my software?
> 2. Is there a supported way to revert back to just using GNU Stow and guix
> package?
> 3. If I can be happy with guix home, is there any supported way to remove
> potential bloat from having run guix package for 30 generations?
> 
> Thanks for the incredible software and help, if you're able.
> 

I suppose the quick answer is to make sure you don't have 'guix' as one
of the packages in your config.

If you share your config we might be able to see if anything sticks out.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: Guix home package confusion
  2022-06-14 18:41 ` Efraim Flashner
@ 2022-06-15  3:20   ` Tangonov
  2022-06-15  5:38     ` Tangonov
  0 siblings, 1 reply; 6+ messages in thread
From: Tangonov @ 2022-06-15  3:20 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: help-guix

Thanks for the reply. I of course felt the need to keep trying 
after I messaged you. Call it determination (or impatience). I had 
manged to do such a good job of addressing my own questions that I 
ended up breaking my home environment.

In the end, I ended up logging in as root, deleting my profile 
symlinks for my user and garbage collecting my user state.

From there I was able to install my manifest from scratch using 
guix home.

I am still pretty confused about the relationship between guix 
package, guix home and how they interact with packages. It seems 
like I can install many packages by invoking guix install, and 
then one system home reconfigure would undo my links to those 
packages if they aren't included in the home configuration. So it 
seems like I should maintain my package manifest should my 
interests in which packages to keep or discard should change above 
and beyond a base system.

What's more confusing is after I installed from a clean slate, my 
pinentry broke for gpg. It was fixed by invoking guix install 
pinentry, which required no download or build for pinentry. It 
seems like the de-duplication worked in that case, but I now have 
(again) two divergent records of which packages I should, or 
should not have.

It feels like I am swinging at a nail with my thumb in the path of 
the hammer.

What exactly is the intended use of guix home?

I am happy to provide my configurations, though, they have evolved 
since my initial message.
Efraim Flashner <efraim@flashner.co.il> writes:

> [[PGP Signed Part:Undecided]]
> On Tue, Jun 14, 2022 at 08:05:45AM -0700, Tangonov wrote:
>> I am trying out guix for the first time and feel like I may 
>> have jumped in
>> head-first into the shallow end of the pool.
>> 
>> I had started out with using guix package for my packages and 
>> updated my env
>> for around 30 generations. Then I discovered guix home and 
>> thought "hey,
>> that may be better".
>> 
>> I set up guix home following the documentation and it created 
>> my first home
>> generation and completely re-installed my packages.
>> 
>> However, after subsequent changes to my home config, a guix 
>> home reconfigure
>> is now attempting to re-install (and build) my packages all 
>> over again,
>> despite never having run a guix pull.
>> 
>> I tried to "undo" the initialization of guix home as I feel 
>> like I maybe
>> should stick to the "older way" for a while longer while I get 
>> the hang of
>> Guile Scheme and try not to change too much at once. I have 
>> been unable to
>> revert my initial revision, or find a clear path back without 
>> doing
>> something dramatic.
>> 
>> With all of my history in mind, I have 3 questions:
>> 
>> 1. Is there a supported way to apply incremental changes in 
>> guix home,
>> without re-doing (and re-compiling) all of my software?
>> 2. Is there a supported way to revert back to just using GNU 
>> Stow and guix
>> package?
>> 3. If I can be happy with guix home, is there any supported way 
>> to remove
>> potential bloat from having run guix package for 30 
>> generations?
>> 
>> Thanks for the incredible software and help, if you're able.
>> 
>
> I suppose the quick answer is to make sure you don't have 'guix' 
> as one
> of the packages in your config.
>
> If you share your config we might be able to see if anything 
> sticks out.



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

* Re: Guix home package confusion
  2022-06-15  3:20   ` Tangonov
@ 2022-06-15  5:38     ` Tangonov
  2022-06-15  6:47       ` Sébastien Rey-Coyrehourcq
  0 siblings, 1 reply; 6+ messages in thread
From: Tangonov @ 2022-06-15  5:38 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: help-guix

With some more proper reading around I managed to find this thread 
from May:

https://www.mail-archive.com/help-guix@gnu.org/msg13655.html

The end of the conversation answered many of my questions. I think 
I know how I want to proceed from here.

Thanks for taking the time if you made it this far :)

Tangonov <tn@eml.cc> writes:

> Thanks for the reply. I of course felt the need to keep trying 
> after I
> messaged you. Call it determination (or impatience). I had 
> manged to
> do such a good job of addressing my own questions that I ended 
> up
> breaking my home environment.
>
> In the end, I ended up logging in as root, deleting my profile
> symlinks for my user and garbage collecting my user state.
>
> From there I was able to install my manifest from scratch using 
> guix
> home.
>
> I am still pretty confused about the relationship between guix
> package, guix home and how they interact with packages. It seems 
> like
> I can install many packages by invoking guix install, and then 
> one
> system home reconfigure would undo my links to those packages if 
> they
> aren't included in the home configuration. So it seems like I 
> should
> maintain my package manifest should my interests in which 
> packages to
> keep or discard should change above and beyond a base system.
>
> What's more confusing is after I installed from a clean slate, 
> my
> pinentry broke for gpg. It was fixed by invoking guix install
> pinentry, which required no download or build for pinentry. It 
> seems
> like the de-duplication worked in that case, but I now have 
> (again)
> two divergent records of which packages I should, or should not 
> have.
>
> It feels like I am swinging at a nail with my thumb in the path 
> of the
> hammer.
>
> What exactly is the intended use of guix home?
>
> I am happy to provide my configurations, though, they have 
> evolved
> since my initial message.
> Efraim Flashner <efraim@flashner.co.il> writes:
>
>> [[PGP Signed Part:Undecided]]
>> On Tue, Jun 14, 2022 at 08:05:45AM -0700, Tangonov wrote:
>>> I am trying out guix for the first time and feel like I may 
>>> have
>>> jumped in
>>> head-first into the shallow end of the pool.
>>> I had started out with using guix package for my packages and
>>> updated my env
>>> for around 30 generations. Then I discovered guix home and 
>>> thought
>>> "hey,
>>> that may be better".
>>> I set up guix home following the documentation and it created 
>>> my
>>> first home
>>> generation and completely re-installed my packages.
>>> However, after subsequent changes to my home config, a guix 
>>> home
>>> reconfigure
>>> is now attempting to re-install (and build) my packages all 
>>> over
>>> again,
>>> despite never having run a guix pull.
>>> I tried to "undo" the initialization of guix home as I feel 
>>> like I
>>> maybe
>>> should stick to the "older way" for a while longer while I get 
>>> the
>>> hang of
>>> Guile Scheme and try not to change too much at once. I have 
>>> been
>>> unable to
>>> revert my initial revision, or find a clear path back without 
>>> doing
>>> something dramatic.
>>> With all of my history in mind, I have 3 questions:
>>> 1. Is there a supported way to apply incremental changes in 
>>> guix
>>> home,
>>> without re-doing (and re-compiling) all of my software?
>>> 2. Is there a supported way to revert back to just using GNU 
>>> Stow
>>> and guix
>>> package?
>>> 3. If I can be happy with guix home, is there any supported 
>>> way to
>>> remove
>>> potential bloat from having run guix package for 30 
>>> generations?
>>> Thanks for the incredible software and help, if you're able.
>>> 
>>
>> I suppose the quick answer is to make sure you don't have 
>> 'guix' as
>> one
>> of the packages in your config.
>>
>> If you share your config we might be able to see if anything 
>> sticks
>> out.



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

* Re: Guix home package confusion
  2022-06-15  5:38     ` Tangonov
@ 2022-06-15  6:47       ` Sébastien Rey-Coyrehourcq
  2022-06-15 13:48         ` Gary Johnson
  0 siblings, 1 reply; 6+ messages in thread
From: Sébastien Rey-Coyrehourcq @ 2022-06-15  6:47 UTC (permalink / raw)
  To: Tangonov, Efraim Flashner; +Cc: help-guix

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

Le 15/06/2022 à 07:38, Tangonov a écrit :
> With some more proper reading around I managed to find this thread 
> from May:
>
> https://www.mail-archive.com/help-guix@gnu.org/msg13655.html
>
> The end of the conversation answered many of my questions. I think I 
> know how I want to proceed from here.
>
> Thanks for taking the time if you made it this far :)
>
> Tangonov <tn@eml.cc> writes:
>
>> Thanks for the reply. I of course felt the need to keep trying after I
>> messaged you. Call it determination (or impatience). I had manged to
>> do such a good job of addressing my own questions that I ended up
>> breaking my home environment.
>>
>> In the end, I ended up logging in as root, deleting my profile
>> symlinks for my user and garbage collecting my user state.
>>
>> From there I was able to install my manifest from scratch using guix
>> home.
>>
>> I am still pretty confused about the relationship between guix
>> package, guix home and how they interact with packages. It seems like
>> I can install many packages by invoking guix install, and then one
>> system home reconfigure would undo my links to those packages if they
>> aren't included in the home configuration. So it seems like I should
>> maintain my package manifest should my interests in which packages to
>> keep or discard should change above and beyond a base system.
>>
>> What's more confusing is after I installed from a clean slate, my
>> pinentry broke for gpg. It was fixed by invoking guix install
>> pinentry, which required no download or build for pinentry. It seems
>> like the de-duplication worked in that case, but I now have (again)
>> two divergent records of which packages I should, or should not have.
>>
>> It feels like I am swinging at a nail with my thumb in the path of the
>> hammer.
>>
>> What exactly is the intended use of guix home?
>>
>> I am happy to provide my configurations, though, they have evolved
>> since my initial message.
>> Efraim Flashner <efraim@flashner.co.il> writes:
>>
>>> [[PGP Signed Part:Undecided]]
>>> On Tue, Jun 14, 2022 at 08:05:45AM -0700, Tangonov wrote:
>>>> I am trying out guix for the first time and feel like I may have
>>>> jumped in
>>>> head-first into the shallow end of the pool.
>>>> I had started out with using guix package for my packages and
>>>> updated my env
>>>> for around 30 generations. Then I discovered guix home and thought
>>>> "hey,
>>>> that may be better".
>>>> I set up guix home following the documentation and it created my
>>>> first home
>>>> generation and completely re-installed my packages.
>>>> However, after subsequent changes to my home config, a guix home
>>>> reconfigure
>>>> is now attempting to re-install (and build) my packages all over
>>>> again,
>>>> despite never having run a guix pull.
>>>> I tried to "undo" the initialization of guix home as I feel like I
>>>> maybe
>>>> should stick to the "older way" for a while longer while I get the
>>>> hang of
>>>> Guile Scheme and try not to change too much at once. I have been
>>>> unable to
>>>> revert my initial revision, or find a clear path back without doing
>>>> something dramatic.
>>>> With all of my history in mind, I have 3 questions:
>>>> 1. Is there a supported way to apply incremental changes in guix
>>>> home,
>>>> without re-doing (and re-compiling) all of my software?
>>>> 2. Is there a supported way to revert back to just using GNU Stow
>>>> and guix
>>>> package?
>>>> 3. If I can be happy with guix home, is there any supported way to
>>>> remove
>>>> potential bloat from having run guix package for 30 generations?
>>>> Thanks for the incredible software and help, if you're able.
>>>>
>>>
>>> I suppose the quick answer is to make sure you don't have 'guix' as
>>> one
>>> of the packages in your config.
>>>
>>> If you share your config we might be able to see if anything sticks
>>> out.
>
>


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

* Re: Guix home package confusion
  2022-06-15  6:47       ` Sébastien Rey-Coyrehourcq
@ 2022-06-15 13:48         ` Gary Johnson
  0 siblings, 0 replies; 6+ messages in thread
From: Gary Johnson @ 2022-06-15 13:48 UTC (permalink / raw)
  To: sebastien.rey-coyrehourcq; +Cc: Tangonov, Efraim Flashner, help-guix

Sébastien Rey-Coyrehourcq <sebastien.rey-coyrehourcq@univ-rouen.fr> writes:

> 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=/var/guix/profiles/system/profile -I

To see the packages installed via `guix home`, use this:

  guix package --profile=$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=$HOME/.guix-profile -I

To see the packages installed via `guix package` with manifests, use
this:

  guix package --profile=$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=$PATH_TO_YOUR_PROFILES_DIRECTORY

for dir in $GUIX_PROFILES/*
do
    name=$(basename "$dir")
    profile=$dir/$name
    if [ -f "$profile"/etc/profile ]
    then
        GUIX_PROFILE="$profile"
        . "$GUIX_PROFILE"/etc/profile
        export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
        export INFOPATH="$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

-- 
GPG Key ID: 7BC158ED
Use `gpg --search-keys lambdatronic' to find me
Protect yourself from surveillance: https://emailselfdefense.fsf.org
=======================================================================
()  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


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

end of thread, other threads:[~2022-06-15 14:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-14 15:05 Guix home package confusion Tangonov
2022-06-14 18:41 ` Efraim Flashner
2022-06-15  3:20   ` Tangonov
2022-06-15  5:38     ` Tangonov
2022-06-15  6:47       ` Sébastien Rey-Coyrehourcq
2022-06-15 13:48         ` Gary Johnson

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