[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Uninstalling a "unknown" package installs new stuff -> totally unexp
From: |
Chris Marusich |
Subject: |
Re: Uninstalling a "unknown" package installs new stuff -> totally unexpected |
Date: |
Fri, 10 Nov 2017 20:25:04 -0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Chris Marusich <address@hidden> writes:
> It may be technically possible to implement a different profile
> generation mechanism which allows the removal of a package by
> "un-symlinking" it from a previous profile generation. However, if we
> did that, it would mean that a profile generation might now depend on a
> profile generation that came before it.
I'd like to correct something I said in my last reply.
I just remembered that we have a declarative description of what is
installed in a profile at $PROFILE/manifest. In my last email, I may
have incorrectly described what happens during the removal of a package.
Judging by the code in guix/profiles.scm, it looks like we actually do
re-use the existing store items that are referenced by the previous
profile generation. Packages won't be upgraded unless you explicitly
ask for it (e.g., with the "-u" option). So, when G_vm removes p_1 from
the profile (i.e., when G_vm builds a new profile in which p_1 is not
present), G_vm will in fact re-use the same package versions in the new
generation that were installed in the previous generation. When I
suggested that the builds you were seeing occurred because G_vm would
want to build newer versions of all the packages, I believe was mistaken
- I apologize for any confusion I may have caused.
That said, I still think it's true that if G_vm is very different than
G_host, it is likely that G_vm will wind up doing a lot of builds for
things that G_host has "already" built (but which aren't installed in
the profile itself). Guix uses derivations to do a lot of stuff under
the covers, so I think this is likely to occur when G_vm and G_host are
very different.
--
Chris
signature.asc
Description: PGP signature