unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* guix archive export/import and software deployment
@ 2016-03-06 14:41 Pjotr Prins
  2016-03-06 22:55 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Pjotr Prins @ 2016-03-06 14:41 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Guix archive is not working well for me. What I want is to deploy a
package with its runtime dependencies reliably from one machine to
another and update the profile after so it can be run, with its
propagated dependencies.

Dependencies are not all included when exporting. In fact all R
modules are missing, but python modules are included. Ludo's earlier
comment suggests the package is visited and harvested for runtime
links. Apparently the R modules are not linked. Even so, they are in
the package definition, so we should be able to capture them.

The second problem is that there is no elegant way to recreate the
profile now for the full thing. Obviously I have a complex product ;)

At this point I am thinking of harvesting dependencies from a bag and 
tar balling all the /gnu/store/ paths mentioned. It will lead to a
larger tarball, but I don't care about that. Alternatively they will
go on a caching guix server.

Next I am thinking of installing these paths one-by-one so as to
recreate the profile and update the guix database.

Probably not the best way to go. Suggestions?

Ideally I would like also to deploy the software without using guix
(just the /gnu/store) and recreate the profile in user space. That is
for those users who can't be bothered to install the guix daemon. It
is a lesser requirement. But it may work well for tools like
mediagoblin too. The first step to a one-click install, perhaps.

Pj.

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

* Re: guix archive export/import and software deployment
  2016-03-06 14:41 guix archive export/import and software deployment Pjotr Prins
@ 2016-03-06 22:55 ` Ludovic Courtès
  2016-03-07  7:02   ` Chris Marusich
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2016-03-06 22:55 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel

Pjotr Prins <pjotr.public12@thebird.nl> skribis:

> Guix archive is not working well for me. What I want is to deploy a
> package with its runtime dependencies reliably from one machine to
> another and update the profile after so it can be run, with its
> propagated dependencies.
>
> Dependencies are not all included when exporting. In fact all R
> modules are missing, but python modules are included. Ludo's earlier
> comment suggests the package is visited and harvested for runtime
> links. Apparently the R modules are not linked. Even so, they are in
> the package definition, so we should be able to capture them.

This is tricky because ‘guix archive’ does not know about packages; it
works at a lower abstraction level.

> The second problem is that there is no elegant way to recreate the
> profile now for the full thing. Obviously I have a complex product ;)

What about ‘guix package --manifest’?  Does it help?

Otherwise, is it OK to pass the whole profile around, as with:

  guix archive --export $(readlink -f ~/.guix-profile) > profile.nar

?

You’d still have to manually link to this profile on the target machine,
though:

  cd /var/guix/profiles/per-user/$USER
  ln -s guix-profile-xyz-link /gnu/store/…-the-above-profile

I think ‘guix package’ should have options to simplify this.

Ludo’.

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

* Re: guix archive export/import and software deployment
  2016-03-06 22:55 ` Ludovic Courtès
@ 2016-03-07  7:02   ` Chris Marusich
  2016-03-07  7:15     ` Pjotr Prins
  2016-03-07 16:38     ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Chris Marusich @ 2016-03-07  7:02 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Otherwise, is it OK to pass the whole profile around, as with:
>
>   guix archive --export $(readlink -f ~/.guix-profile) > profile.nar
>
> ?
>
> You’d still have to manually link to this profile on the target machine,
> though:
>
>   cd /var/guix/profiles/per-user/$USER
>   ln -s guix-profile-xyz-link /gnu/store/…-the-above-profile
>
> I think ‘guix package’ should have options to simplify this.

Does that basically achieve a similar effect as the following in Nix?

https://nixos.org/nix/manual/#sec-nix-copy-closure

I haven't used Nix much yet, but it seems similar in spirit. I wonder if
there's anything we could adapt from there.

Chris

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

* Re: guix archive export/import and software deployment
  2016-03-07  7:02   ` Chris Marusich
@ 2016-03-07  7:15     ` Pjotr Prins
  2016-03-07 16:38     ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Pjotr Prins @ 2016-03-07  7:15 UTC (permalink / raw)
  To: Chris Marusich; +Cc: guix-devel

On Sun, Mar 06, 2016 at 11:02:48PM -0800, Chris Marusich wrote:
> > I think ‘guix package’ should have options to simplify this.
> 
> Does that basically achieve a similar effect as the following in Nix?
> 
> https://nixos.org/nix/manual/#sec-nix-copy-closure
> 
> I haven't used Nix much yet, but it seems similar in spirit. I wonder if
> there's anything we could adapt from there.

Nix closures are close to Guix archives, it is the same underlying
mechanism by the guix/nix daemon. I am not sure what --include-outputs
does (where do these descriptive options come from?), but it may be
what I am looking for (packages that do not reference other packages,
despite being dependencies).

Pj.

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

* Re: guix archive export/import and software deployment
  2016-03-07  7:02   ` Chris Marusich
  2016-03-07  7:15     ` Pjotr Prins
@ 2016-03-07 16:38     ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2016-03-07 16:38 UTC (permalink / raw)
  To: Chris Marusich; +Cc: guix-devel

Chris Marusich <cmmarusich@gmail.com> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Otherwise, is it OK to pass the whole profile around, as with:
>>
>>   guix archive --export $(readlink -f ~/.guix-profile) > profile.nar
>>
>> ?
>>
>> You’d still have to manually link to this profile on the target machine,
>> though:
>>
>>   cd /var/guix/profiles/per-user/$USER
>>   ln -s guix-profile-xyz-link /gnu/store/…-the-above-profile
>>
>> I think ‘guix package’ should have options to simplify this.
>
> Does that basically achieve a similar effect as the following in Nix?
>
> https://nixos.org/nix/manual/#sec-nix-copy-closure

‘nix-copy-closure’ can be thought of as an rsync for the store, built on
top of archives (archives in “nar” format, as produced by ‘guix archive’
and other tools.)

We have that functionality in ‘guix offload’¹, which basically works by
running ‘guix archive --missing’ on the remote machine, but I think it
would be nice to have a standalone ‘guix copy’ command based on
Guile-SSH.

Ludo’.

¹ http://git.savannah.gnu.org/cgit/guix.git/tree/guix/scripts/offload.scm#n445

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

end of thread, other threads:[~2016-03-07 16:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-06 14:41 guix archive export/import and software deployment Pjotr Prins
2016-03-06 22:55 ` Ludovic Courtès
2016-03-07  7:02   ` Chris Marusich
2016-03-07  7:15     ` Pjotr Prins
2016-03-07 16:38     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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