guix-devel
[Top][All Lists]
Advanced

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

guix package: error: corrupt input while restoring archive from socket


From: Alex Vong
Subject: guix package: error: corrupt input while restoring archive from socket
Date: Thu, 20 Jul 2017 20:39:54 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Hi guix,

I manage to break something after re-building guix using /var as
localstatedir. The whole story is available below, any help will be
appreciated!

I used to build guix from release tarball, install it to /usr/local/ and
run 'guix pull && guix package -u' to upgrade.

One day, 'guix pull' became too slow for me and I decided to switch to
'git pull'. So instead of running 'guix pull && guix package -u',
I chdir into the git repo and run
'git pull && make -j`nproc` && ./pre-inst-env guix package -u'.

After that change, I have 2 "instances" of guix. The 1st instance comes
from the release tarball, installed into /usr/local/. The 2nd instance
comes from the git repo, which is not installed anywhere. To summarize,
guix-demon is from the 1st instance and package definitions are from the
2nd instance.

Clearly, this approach is too complicated. Today, I try to simplify
things by removing the 1st instance of guix. I run 'make uninstall' to
remove the 1st instance of guix. Then, I run
'make distclean && clean -fdx && git reset --hard' to clean git repo
and run
'./bootstrap && ./configure --localstatedir=/var && make -j`nproc`'
to re-build.

After that, I move all guix-related files in /usr/local/var to /var and
adjust the .guix-profile symlink to point to the /var/... directory.

So far so good. The only problem left is how should I start
guix-daemon. Well, I first chdir into the git repo, run 'su -m' to gain
root privilege while preserving environment and finally starting the
daemon with './pre-inst-env guix-daemon ...'.

I feel like I am almost there. So with excitement, I chdir into the git
repo and run './pre-inst-env guix package -u'. To my disappointment, the
command fails with the following message:


address@hidden:~/scm/guix$ ./pre-inst-env guix package -u
substitute: Backtrace:
substitute:            1 (primitive-load 
"/home/alexvong1995/scm/guix/scripts/gu…")
substitute: In guix/ui.scm:
substitute:   1352:12  0 (run-guix-command _ . _)
substitute: 
substitute: guix/ui.scm:1352:12: In procedure run-guix-command:
substitute: guix/ui.scm:1352:12: Wrong type to apply: #<unknown-type (0x24f . 
0x7f92ef1ebe08) @ 0x7f92ef7a1318>
guix package: error: corrupt input while restoring archive from socket


Does anybody know why?

Cheers,
Alex

Attachment: signature.asc
Description: PGP signature


reply via email to

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