all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Re: Why does `system reconfigure` need to `pull`?
@ 2024-12-26 12:56 František Boháček
  0 siblings, 0 replies; 6+ messages in thread
From: František Boháček @ 2024-12-26 12:56 UTC (permalink / raw)
  To: 45mg.writes; +Cc: guix-devel

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

Hello,

normally you dont pull channels as part of system build, unless you configured it explicitely. So it would be good if you sent your config if you cannot identify what fetches new channels.

Regards,
Rutherther 

[-- Attachment #2: Type: text/html, Size: 296 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Why does `system reconfigure` need to `pull`?
@ 2024-12-25 14:44 45mg
  2024-12-26 18:41 ` Ian Eure
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: 45mg @ 2024-12-25 14:44 UTC (permalink / raw)
  To: Guix Devel

Hi Guix,

So I've just installed Guix System on my main machine, and right off the
bat, I want to thank everyone here for spending their time on this
amazing project. While there have been a few pain points (expect some
(minor) patches, hopefully!), the feeling of finally getting `guix
system init` to work and then instantly rebooting into the /exact same
system/ that I built in a VM over weeks is downright magical.

I'm writing to discuss one of the aforementioned pain points. It's one
of those things that seems insignificant at first, but I fear it may
impact my ability to keep using Guix. Let me explain.

Whenever I run `guix system reconfigure`, the first output I see from
the command is this:

Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...

It then says it's fetching and indexing objects, authenticating N new
commits, etc. As far as I can tell, this stage is equivalent to `guix
pull`. It sometimes repeats this several times during the course of the
`reconfigure`.

I didn't think much of this at first, although I thought it was odd that
the manual did not mention a 'pull' stage [1].

However, I quickly realised that *this makes it impossible to
reconfigure without an internet connection*. The command will exit
unsuccessfully when it fails to pull [2].

This means that I cannot tweak my system *at all* without an internet
connection. Even to do something that doesn't require Guix to download
anything - like add a new user, or tweak my `bootloader-configuration`,
or fix my `network-manager-configuration` so I can connect to the
internet (see the chicken-and-egg issue there?), I must be connected to
the internet.

For me, this is a huge step backwards from conventional GNU/Linux
distributions in terms of usability. My internet connection tends to be
extremely flaky, with frequent outages for days or more. This will mean
I won't be able to make changes to my system at all during this period.

Now, I really want to believe that there's a way around this; that I
haven't read the docs enough, and there's some option or command to
reconfigure my system without pulling new commits. But I can't seem to
find any such thing. (`guix time-machine` has the same problem [3].)

Is there really no way to reconfigure my system without an internet
connection?

P.S. I tried to delve into the source to understand how `reconfigure`
works internally, but I was not able to understand much from
guix/scripts.scm and the associated files... which means I likely won't
be able to address this myself any time soon. Which concerns me all the
more, because while I have a stable connection for the next week or so,
I don't know how I'll continue using my system once this is no longer
the case...

---

[1] From '(guix) Invoking guix system':
‘reconfigure’
Build the operating system described in FILE, activate it, and
switch to it.

[2]
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Backtrace:
In guix/gexp.scm:
    926:4 19 (_ _)
In guix/store.scm:
  2095:12 18 (_ #<store-connection 256.100 7f389f90d2d0>)
  1412:11 17 (map/accumulate-builds #<store-connection 256.100 7f38…> …)
   1330:8 16 (call-with-build-handler #<procedure 7f388b8988a0 at g…> …)
  2210:25 15 (run-with-store #<store-connection 256.100 7f389f90d2d0> …)
In guix/gexp.scm:
   931:13 14 (_ _)
In guix/store.scm:
   2038:8 13 (_ _)
In guix/gexp.scm:
   300:22 12 (_ _)
In guix/store.scm:
   2038:8 11 (_ _)
In guix/gexp.scm:
   300:22 10 (_ _)
In guix/store.scm:
   2038:8  9 (_ _)
In guix/packages.scm:
  2050:11  8 (_ _)
In guix/build-system/channel.scm:
     43:2  7 (_ _)
In guix/store.scm:
  2082:38  6 (_ #<store-connection 256.100 7f389f90d2d0>)
In guix/channels.scm:
   559:23  5 (latest-channel-instances #<store-connection 256.100 7…> …)
   422:18  4 (latest-channel-instance #<store-connection 256.100 7f…> …)
In guix/git.scm:
    586:7  3 (update-cached-checkout _ #:connection-timeout _ # _ # _ …)
In git/bindings.scm:
     77:2  2 (raise-git-error _)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Git error: failed to resolve address for git.savannah.gnu.org: Name or service not known

[3]
$ guix describe -f channels > channels.scm
$ sudo guix time-machine -C channels.scm -- system reconfigure -L /etc/guix-system/ /etc/guix-system/config.scm
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...



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

end of thread, other threads:[~2024-12-27 21:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-26 12:56 Why does `system reconfigure` need to `pull`? František Boháček
  -- strict thread matches above, loose matches on Subject: below --
2024-12-25 14:44 45mg
2024-12-26 18:41 ` Ian Eure
2024-12-26 21:48 ` Christopher Baines
2024-12-27 19:58 ` 45mg
2024-12-27 21:29   ` Tomas Volf

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.