[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guix home, guix system, channels, some noob questions

From: Sébastien Rey-Coyrehourcq
Subject: Re: Guix home, guix system, channels, some noob questions
Date: Thu, 12 May 2022 14:32:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1


I made some test on my own to understand :

1 - Like you say, installing things with *guix install* is for current user (for example *firefox* and *sshpass*)

2 - Adding a package that don't exist to * myhome.scm* and reconfigure it with *guix home reconfigure* file will download a package (ex "ncdu"), but this package doesn't appear into "guix package --list-installed"

3 - Adding a package that already exist for user (ex : firefox already installed with guix install) to *myhome.scm* doesn't reinstall package, that's normal.

I don't understand the step 2, why *guix home* installed package (*ncdu* here) are not listed with *guix install --list-installed*, is there a difference ?

- using *which ncdu*, bin is located into .guix-home/profile/bin/ncdu

- using *which firefox*, bin is located into .guix-home/profile/bin/firefox

- using *which sshpass*, bin is located into .guix-home/profile/bin/sshpass

Ok for secrets, but i don't understand the "out-of-band" reference in your previous mail.

Thanks !

Best regards

Le 12/05/2022 à 11:28, Julien Lepiller a écrit :
guix install something installs for the current user. Note that, if you do that as root, the package is also only available to root. The only way to install or remove a global package is through guix system and its configuration file.

I don't know how guix home interacts with other solutions.

We don't have a good solution for secrets. We advise to manage the "out-of-band" to make sure that you don't share the secret accidentally (eg. publishing your configuration with others) and that the secret doesn't end up in the store (it's world-readable).

On May 12, 2022 10:40:18 AM GMT+02:00, "Sébastien Rey-Coyrehourcq" <> wrote:

    Thanks Julien,

    Ok i see, like you say jpoiret also say me that the concept are
    orthogonal, so if i understand well :

    - adding emacs as system package, i suppose this is available for
    all users

    - adding emacs as home package, i suppose this is available only
    for me

    And *guix install something* install for which, system or home or
    both ?

    Some other general questions :

    - About dotfile management, is it possible to use chezmoi, yadm,
    stow in // of guix home ?

    I'm interested by some example if you have.

    - About secrets management, i know this is very complicated in nix
    (there are one hundred way to do the things, more or less secure),
    how that works if i want to inject *secrets* into guix home scm
    file and maintain security when i share or publish my config
    with/to others ?


    Best regards

    Le 11/05/2022 à 17:48, Julien Lepiller a écrit :
    Guix home and guix system are pretty similar as they are used to
    declaratively manage configuration. But, they are not mutually
    exclusive. Guix system is the only way to install and update the
    Guix System (hence the name ;)).

    Guix home manages your user's configuration (in /home) while guix
    system manages the system's configuration (traditionally in /etc,
    though less true for guix). The two are acting in a very similar
    on two different things.

    Also, you can use guix home on a foreign distro, or choose to not
    use guix home on the Guix System.


    On May 11, 2022 4:55:23 PM GMT+02:00, "Sébastien Rey-Coyrehourcq"
    <> wrote:


        My other question remain about guix home / guix system relation, and 
sudo, but jpoiret found my main problem, my channels.scm are not well defined / 
not good ...

        - I made (cons * (channel ...)) (cons* (channel ...)) etc.

        - and .. the correct way is (cons * (channel ...) (channel ...))

        Everything run fine now with *guix system reconfigure 


        Le 11/05/2022 à 16:36, Sébastien Rey-Coyrehourcq a écrit :

            Hi, Thanks Julien, I see on the doc that *sudo* run
            command as user and not as root like other distro. So, to
            be sure, if i run *sudo guix something*, i don't change
            user to run this command isn't it ? Actually i only work
            with my account "myuser" into group
            ("users","wheel",etc.) using or not using *sudo* (this is
            not clear when i need or not) for running *guix* command.
            About the commands with /.config/guix/channels.scm (see
            content here  : a)
            *guix describe* and *sudo guix describe* and *sudo -E
            guix describe* return Génération 7    11 mai 2022
            16:01:25    (actuelle)   guix d24ad39     URL du dépôt :
       branche :
            master     commit :
            d24ad3949127a938cad306f0524c120afe5e2e4f b) *guix system
            describe* return Génération 7    10 mai 2022 12:39:34   
            (actuelle)   nom de fichier :
            /var/guix/profiles/system-7-link   nom de fichier
            canonique :
            étiquette : GNU with Linux 5.17.5   chargeur de démarrage
            : grub-efi   périphérique racine : /dev/mapper/cryptroot
              noyau :
              canaux :     nonguix:       URL du dépôt :
         branche : master
                  commit : 1de0c32142c54bc73af5556d5e45c77152b31f0f
                guix:       URL du dépôt :
         branche :
            master       commit :
            d775a24344d4a910f6a19072c595bdafcf104b6f   fichier de
            configuration :
            c) *guix home describe* return Génération 1    10 mai
            2022 16:59:14    (actuelle)   nom de fichier :
            /var/guix/profiles/per-user/reyman/guix-home-1-link   nom
            de fichier canonique :
            /gnu/store/3q599hyjkx8c5ywsdy2gqfmx2bjzgzmm-home   canaux
            :     flat:       URL du dépôt :
            branche : master       commit :
            094746c1e2e90f2df1e598ab1fd0abb4d75ce84d     guix:      
            URL du dépôt :
                  branche : master       commit :
            0f705472126f7b935e0783bcd8fec831b7a0593b   fichier de
            configuration :
            With jpoiret, i try to resolve the issue on chat, i also
            try to run manually *guix pull -C
            ./config/guix/channels.scm* without success. A *command
            -v guix* return */home/myuser/.config/current/bin/guix*
            Best regards, SR Le 11/05/2022 à 12:47, Julien Lepiller a
            écrit :

                Hi Sébastien, When you run guix describe, it's
                running the guix for your user, which miggt be
                different from the one you run when you use sudo.
                That could explain why the modules are not found. I
                don't think guix home has anything to do with that. I
                noticed that the first time you use sudo -E, whereas
                you use only sudo on step 5. Mayée that's why it
                fails? I would run sudo guix describe and sudo -E
                guix describe to see how the two might be different
                from your user's guix :) HTH! On May 11, 2022
                11:09:19 AM GMT+02:00, "Sébastien Rey-Coyrehourcq"
                <> wrote:    
                Hi Guix people :)     I'm starting guix, picking
                information when needed into documentation.     I'm
                facing difficulties with channels.scm since i start
                using "guix home", i read the doc page, but i need
                some other things to understand.     Here my logic to
                start just after install :     1 - I modify my
                //etc/guix/channels.scm/ file to add some modules :
                /nonguix/ (my computer don't work well without) and
                /emacs-native-dep/ from flatwhatson flat channel.    
                2 - I /guix -E guix system reconfigure
                /etc/config.scm/, /guix pull/, and everything goes
                well     3 - Like explained in the doc, I run /guix
                home import ~/src/guix-config /that generate /a
                //home-configuration.scm//     /     /4 - /Into
                /home-configuration.scm///i add the package htop and
                /emacs-native-comp/     5 - In the guix home doc the
                next command is /guix home reconfigure config.scm
                /but this is probably a typo and i run /guix home
                reconfigure ~/src/guix-config/home-configuration.scm/
                    6 - Everything goes well, emacs-native-dep
                compile during 1 hour, problems arrive after that.
                    7 - I'm moving the //etc/guix/config.scm/ and
                //etc/guix/channels.scm /to my home /~/.config/guix/
                , /and i run /sudo guix system reconfigure
                ~/.config/guix/system.scm///*, that fail*/, /it seems
                the module (nongnu and emacs-native-dep) are not
                referenced, like the error say /"no code for module (
                nongnu ..." /But when i run /guix system describe/,
                the corresponding channel are well defined. /     /
                    After that, i try many thing, like moving
                channels.scm and system.scm back to /etc/guix/ but
                every reconfigure command fail in link with
                channel/module not recognized (emacs-native-dep or
                nongnu)     - /guix home reconfigure
                ~/src/guix-config/home-configuration.scm/     - /guix
                system reconfigure ~/.config/guix/system.scm/     -
                /guix system reconfigure ~/etc/guix/config.scm/    
                So my question is first, why that fail after
                switching to guix home ? and how and where i need to
                define/set correctly the /channel.scm/ file to repair
                that ?     For example, /guix system//describe/ and
                /guix home describe/ and /guix describe/ return all
                different channel referenced, how i manage that ?    
                I suppose there is a "workflow to use well guix
                home"? but this is not actually in the doc. For
                example, perhaps after creating and switching to guix
                home profile, running guix system is impossible or
                prohibited ? I suppose this will be added in the
                future.     Thanks a lot for your help.
    Sebastien Rey-C     //

Attachment: OpenPGP_0xD262AFCCE42732D3.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]