From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: Export archive and import it on another machine Date: Sat, 20 Feb 2016 07:50:40 -0500 Message-ID: <20160220125040.GB17401@jasmine> References: <20160218223452.GB9390@jasmine> <92F3C593-B017-4E74-9602-784DE122A578@sumou.com> <20160219170610.GA3544@jasmine> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52179) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXBMP-0007eq-Ij for help-guix@gnu.org; Sat, 20 Feb 2016 12:30:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXBMO-0006FY-2K for help-guix@gnu.org; Sat, 20 Feb 2016 12:30:25 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:55158) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXBMN-0006FU-UX for help-guix@gnu.org; Sat, 20 Feb 2016 12:30:23 -0500 Content-Disposition: inline In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org To: =?utf-8?B?55m944GE54aK77yg55u45pKy6YGT?= Cc: help-guix@gnu.org On Sat, Feb 20, 2016 at 11:25:22AM +0000, 白い熊@相撲道 wrote: > > > On February 19, 2016 6:06:10 PM CET, Leo Famulari wrote: > >On Fri, Feb 19, 2016 at 09:42:59AM +0000, 白い熊@相撲道 wrote: > >> > >> > >> On February 18, 2016 11:34:52 PM CET, Leo Famulari > > wrote: > >> >On Thu, Feb 18, 2016 at 08:01:44PM +0000, 白い熊@相撲道 wrote: > >> >> I'm trying to export Libreoffice from one PC and import it on > >another > >> >one — the reason I'm doing this is that with the latest git checkout > >> >when I try to install it on a PC with a newly installed GuixSD it > >keeps > >> >building it from source and failing. > >> >> > >> >> Anyhow, on the machine that I have it installed I ran: > >> >> > >> >> # guix archive --generate-key > >> >> $ guix archive --export -r /gnu/store/hash...libreoffice-5.0.3.2 > > >> >libreoffice-5.0.3.2.nar > >> >> > >> >> Then copied the nar and /etc/guix/signing-key.pub to the other PC. > > > >> >> > >> >> There I ran: > >> >> > >> >> # guix archive --authorize < signing-key.pub > >> >> $ guix archive --import < libreoffice-5.0.3.2.nar > >> >> > >> >> The last command fails with: > >> >> > >> >> guix archive: error: build failed: program `guix-authenticate' > >failed > >> >with exit code 1 > >> >> > >> >> What am I doing wrong? > >> > > >> >Hm, I'm not sure. Are you sure the source machine's public key is in > >> >/etc/guix/acl? > >> > >> I think it is — I see one entry in the acl file, but since it's a > >hash I don't know how to confirm that it represents the much shorter > >hash found in the source machine's signing-key.pub file. > > > >Typically there would only be one entry in the acl file, containing > >hydra.gnu.org's public key. > > > >So, unless you do not use substitutes from hydra.gnu.org, there should > >be two keys. > > > >Also, I believe that the imported key should match the contents of > >signing-key.pub. I tested this functionality while reading your message > >yesterday and that was my experience. Perhaps try importing the public > >key again? > > Ugh — figured it out — this was dumb on my part. I was running “$ sudo guix archive --authorize < signing-key.pub”, which obviously doesn't extend to input redirection — so nothing was authorized. > > Now I truly ran “# guix archive --authorize < signing-key.pub”, it authorized the key. > > Then I was able to import libreoffice to the store — the directory is there. > > However, it's not installed in my profile — “guix package -I” doesn't list it. Running “guix package -i libreoffice” again wants to rebuild it. How do I install the one that's been imported to the store? You have different package definitions on each machine. So, the libreoffice you built is not the same as the one that would be built on the destination machine, and so your binaries cannot be substituted. If you are working out of git, with './pre-inst-env', then you should make sure you are working from the same commit on both machines. This is the easiest thing to do if you are trying to share substitutes between machines. You don't have you run your whole system out of git; you can just do it for the packages you wish to share. Otherwise, if you are using `guix pull`, you will need to update both machines, and possibly rebuild on the source machine if some part of the libreoffice dependency graph has changed (likely). There may be other options, but those are the two that I know. > -- > 白い熊@相撲道 > > >> >> Side question — why is it building Libreoffice from source on > >“guix > >> >package -i libreoffice”? Recipe there, but not built on Hydra? How > >can > >> >I install an earlier already—built version? > >> > > >> >Most likely for this reason: > >> >http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22653 > >> > > >> >You can install an earlier version by checking out a commit in the > >Guix > >> >git repo from before Vigra broke, and building based on that commit > >> >[0]. > >> > >> That's good — I can do that. I'm not really familiar with git yet — > >how can I determine the commit representing the point in time before > >Vitro broke and pull it? And how do I go back to master after > >rebuilding and installing libreoffice? > > > >I bet if you ask on #guix, somebody will know what broke Vigra and can > >help you figure that out. Otherwise, I would read the git log and > >compare it to Vigra's dependencies; you might find some clues. Then you > >can use `git bisect` to narrow it down. > > > >After installing libreoffice from that commit, you don't need to do > >anything special. You can keep using guix normally. Your working > >installation of libreoffice will remain in your profile until you can > >successfully update it from the HEAD of the master branch again (that > >is, with `guix pull`). > > > >> > >> >When building Guix from git, be sure to pass the correct value to > >> >./configure --localstatedir=. Most likely it is '/var'. > >> > >> Thank you for reminding me of this! I would have forgotten for sure! > >:@) > >> -- > >> 白い熊@相撲道 > >> > >> >[0] > >> >https://www.gnu.org/software/guix/manual/guix.html#Building-from-Git > >> > >> > >> > >