help-guix
[Top][All Lists]
Advanced

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

Developing golang programs on guix


From: Peter Mikkelsen
Subject: Developing golang programs on guix
Date: Mon, 29 Jan 2018 10:50:10 +0100

Hi guix,

Lately I have been playing around with go after a long time with no
use, but last time I was on fedora I think.
Now that I am on guixSD, I have found that the standard go way of
doing things is not working as expected.

For example, after setting the environment variable GOPATH to
/home/peter/go, and creating a small hello world program in there, I
would normally be able to run 'go install' in that folder, and the
hello world binary would end up in my gopath. But on guixSD this is
not the case, since it seems like 'go install' is trying to compile
every single library provided by to go package itself, and that means
writing to the store, which is not possible.

For example, the output of 'go install -x' in my hello world project
gives me this output:

WORK=/tmp/go-build858282353
mkdir -p $WORK/runtime/internal/sys/_obj/
mkdir -p $WORK/runtime/internal/
cd /gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/src/runtime/internal/sys
/gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/tool/linux_amd64/compile
-o $WORK/runtime/internal/sys.a -trimpath $WORK -goversion go1.9.3 -p
runtime/internal/sys -std -+ -complete -buildid
817fb51b0d31bc187077c53e22d9b0fe9df62e9d -D
_/gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/src/runtime/internal/sys
-I $WORK -pack ./arch.go ./arch_amd64.go ./intrinsics.go ./stubs.go
./sys.go ./zgoarch_amd64.go ./zgoos_linux.go ./zversion.go
mkdir -p 
/gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/linux_amd64/runtime/internal/
cp $WORK/runtime/internal/sys.a
/gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/linux_amd64/runtime/internal/sys.a
go install runtime/internal/sys: open
/gnu/store/fgwh2q36s5rqyxdbs2sl6ybpyxbv5y14-go-1.9.3/pkg/linux_amd64/runtime/internal/sys.a:
read-only file system

so to me it looks like it wants to compile stuff in the store, but why
is that? shouldn't it be compiled by default?

So my question is: Is there a way to prevent 'go install' compiling
things in the store, maybe by pre-compiling during installation of the
go package? Or is there another preferred way to develop go
applications on guix, since what i do now is 'go build', but that gets
really slow with larger projects, at it recompiles everything
everytime if i understand it right.

Cheers,
Peter Mikkelsen



reply via email to

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