[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Using --manfistest with <profile>/manifest files
From: |
zimoun |
Subject: |
Re: Using --manfistest with <profile>/manifest files |
Date: |
Mon, 15 Jun 2020 09:54:45 +0200 |
Dear,
On Thu, 11 Jun 2020 at 10:40, elaexuotee@wilsonb.com wrote:
> In an attempt to tar up the *build* environment for a package to share with a
> colleague, I encountered this:
>
> [env]$ guix pack -m $GUIX_ENVIRONMENT/manifest
> (manifest ...): Wrong number of arguments
>
> From playing around a bit, my guess is that the `<profile>/manifest' files are
> just human-readable serializations of <manifest> objects and don't deserialize
> back:
>
> $ guix environment -m ~/.guix-profile/manifest
> (manifest ...): Wrong number of arguments
It is more "complicated" than that. The detailed explanations are in
the mega thread. :-) In short and from my understanding, going from
"<profile>/manifest" to "-m manifest.scm" cannot be done in the general
case because two concepts -- imperative vs declarative -- are not well
aligned. Pragmatically, it means that the result could be more than
often unpractical with too much inferiors. Well, only an
"approximation" could be exported.
Sorry I am too lazy to search, but I think I remember that at the time
Pierre sent -- probably in the mega thread :-) -- a small script to
extract relevant information from <profile>/manifest; the preliminary
for '--export-manifest'. :-)
Otherwise, let open <profile>/manifest, write an Emacs macro and extract
the relevant information. ;-)
Well, because I hit the same problem some time ago -- well when I raised
or revived the discussion about this conversion -- I fixed for myself by
converting by hand some profiles and totally changed my workflow.
Now, I never use "guix install" but always "guix package -m". For
temporary test, I extend the profile with "guix environment" which is on
purpose because it is a temporary profile; if it is worth, I add the
package to the manifest file.
(Sometimes, I run "guix install foo -p /tmp/foo" to test something
temporary, mainly when I try to figure out an issue that has been
reported.)
Each time, I run "guix package -m" or "guix update", then I run in the
same time "guix describe" and track the output.
Well, I have 2 kind of manifests:
- the ones of my setup, living under ~/.config/guix/manifests and where
I applied some recipe of [1]
- the ones of projects I work on, living in the project folder
and each manifest is accompanied by channel.scm (guix describe -f). And
I have almost no package in ~/.guix-profile but they live separated
profiles (Emacs, Python, Apps, etc.).
All the best,
simon
1:
https://guix.gnu.org/cookbook/en/html_node/Guix-Profiles-in-Practice.html#Guix-Profiles-in-Practice
- Re: how to "guix pack" a profile?, (continued)
Re: Using --manfistest with <profile>/manifest files, George Clemmer, 2020/06/15
Re: Using --manfistest with <profile>/manifest files, zimoun, 2020/06/16
Re: Using --manfistest with <profile>/manifest files, George Clemmer, 2020/06/16
Re: Using --manfistest with <profile>/manifest files, zimoun, 2020/06/16
Re: Using --manfistest with <profile>/manifest files, Ludovic Courtès, 2020/06/16
Re: Using --manfistest with <profile>/manifest files,
zimoun <=