Chris Marusich 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