guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: updating list of substitutes


From: Mark H Weaver
Subject: Re: updating list of substitutes
Date: Wed, 22 Apr 2015 15:01:37 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Pjotr Prins <address@hidden> writes:

> On Tue, Apr 21, 2015 at 02:02:37PM +0200, Andreas Enge wrote:
>> On Tue, Apr 21, 2015 at 12:02:16PM +0200, Pjotr Prins wrote:
>> > ls /var/guix/profiles/per-user/wrk/guix-profile-2-link/bin/ruby
>> >   /var/guix/profiles/per-user/wrk/guix-profile-2-link/bin/ruby -> 
>> > /gnu/store/gy1dnlh6qhwd40admi3b1mr4r9cn8bww-ruby-2.2.1/bin/ruby
>> > 
>> > A few days later I install ruby-1.8.7 followed by
>> > guix package -i ruby-2.2.1
>> > The following package will be upgraded:
>> >    ruby 1.8.7-p374 -> 2.2.1     
>> > /gnu/store/z8kf6hgln4a7xf68pdnlibl3vcg5rl15-ruby-2.2.1
>> 
>> But I suppose that in between, you also did a "git pull; make install" or
>> "guix pull"? Then it is clear that if you have a different version of guix
>> installed, it references different packages.
>
> I don't think so, but I am not 100% sure I did not do a guix pull in
> between. I'll show it if it happens again.

The different hash indicates that you had done a "guix pull" in between,
or else changed some package that 'ruby' depends on.

To reproduce the exact versions of packages that you had before, then
you need to be using the same version of 'guix' that you used before.

"guix pull" supports only one mode of operation: get the latest version
from the git repo and build it.  It puts that latest version into
$HOME/.config/guix/latest.  You may backup and restore that directory if
you wish.

If you want more flexibility (as I do), you will avoid "guix pull"
entirely and instead build and use guix from a git checkout using
'pre-inst-env'.  Then you can add your own tags, or simply record the
git commit hashes, and then reproduce them at any time by checking out
the desired version of guix and using that one.

Using 'git' also allows you to keep a private branch with your own
arbitrary modifications, and to periodically either merge from our
upstream, cherry-pick from us, or rebase your branch onto our upstream,
whatever you prefer.

      Mark



reply via email to

[Prev in Thread] Current Thread [Next in Thread]