Am 14.10.19 um 09:27 schrieb Pierre Neidhardt:
However, I wonder why nobody has implemented
"guix environment --profile=/path/to/my/profile".
Note that there is the "--manifest" option to "guix environment".
This brings up another "pro" for manifest: Right now it's possible to
create environments out of manifests while it's not possible to create
environments out of profiles without Chris' hack.
When I explain Guix, I start with environments, which I consider that
more fundamental concept, and then introduce profiles as persistent
environments. From that perspective, creating an environment from a
profile makes no sense, though it may be useful as a convenience
function for some needs (not mine). Manifests are persistent
*specifications* of environments, which do make sense (a lot, in fact).
A question that I believe has been brought up before: is it possible to
specify multiple manifests from the command line, such as to provide the
union of the manifests?
Even better: what high-level functions to manipulate manifests, such as
"manifest-union", "manifest-difference"?
Union is OK, difference isn't. A manifest is not just any set of
packages, it's a set of packages that has no dependencies outside of the
set.
This sounds like the beginning of another chapter for the cookbook:
package lists, manifests, bags, etc. What are the differences, and when
should I use what?
Which reminds me that when working on the command line, the "manifest"
option in practice always refers to a package list that is then
converted to a manifest. And most people *want* to work at the package
list level. And then differences make sense again. It's all a bit of a
mess...
Cheers,
Konrad.