unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* What exactly guix pull does and why is there a seperate profile at ~/.config/guix/current ?
@ 2019-05-13 19:02 Doron Behar
  2019-05-14  7:30 ` Christopher Baines
  0 siblings, 1 reply; 4+ messages in thread
From: Doron Behar @ 2019-05-13 19:02 UTC (permalink / raw)
  To: help-guix

Hey all,

I'm using Arch Linux and I'd like to get my hands dirty with Guix as an
alternative (but better) package manager. Unfortunately, I'm very
confused as for the role of `guix pull` and `guix package -u` and the
'current guix profile' symlinked to ~/.config/guix/current .

In 'traditional` package managers, there's the concept of a "repository"
which seems to correspond to all the scheme code written in
gnu/packages/*.scm under the Guix Git repository.

Usually, the repositories (or more precisely, the package definitions)
are managed separately from the source code of the package manager
itself, and very reasonably IMO. Since the source code to retrieve
packages / reading definitions and building them shouldn't be linked to
changes such as packages added or updated in the repositories.

According to the documentation, `guix pull` 'updates the distribution
along with the Guix tools'. Does it mean that every time something is
updated in the actual source code of the remote Guix repository, when I
run `guix pull` afterwards my computer builds `guix` and `guix-daemon`
from the ground up? Does it actually run `./configure && make && make
check` behind the scenes on the source files? If so, that's insanely CPU
wasteful and definitely unnecessary.

This wouldn't have been that bad if Guile would have had a compiler
cache like C and some other languages have (see [ccache][1] and
[sccache][2]).

Additionally, I'm not sure I understand the relation between `guix pull`
and `guix package -u`. Let's say I'm running `guix pull` and some
packages have been updated / added.  Do I have to use the guix binary in
~/.config/guix/current/bin/ in order to install them? Speaking of which,
what is the purpose of this profile anyway? Why doesn't `guix pull` just
updates a database of all package definitions and then suggests to run
`guix package -u` to do all the rest - including updating `guix` it self
in the default profile **if needed**?

One more unclear thing for me: If I run `guix pull`, I always get the
message that I should add ~/.config/guix/current/bin/ to my $PATH so I'd
use the latest `guix`. Does it mean that with using `guix` from
~/.guix-profile/bin I don't really get any updates?

I hope the design decisions of the way things work now are genius as the
rest of the ecosystem and that I've failed to see that. Anyway, above
all, I'm not sure as for what `etc/profile` files to `source` so my $PATH
and other environmental variables will always be up to date with the
current state..

Thanks for any help, Doron.

[1]: https://ccache.samba.org
[2]: https://github.com/mozilla/sccache

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

end of thread, other threads:[~2019-05-14 17:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-13 19:02 What exactly guix pull does and why is there a seperate profile at ~/.config/guix/current ? Doron Behar
2019-05-14  7:30 ` Christopher Baines
2019-05-14 10:50   ` Doron Behar
2019-05-14 17:06     ` Christopher Baines

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