前往:“ all.bash”编译测试失败,并显示“权限被拒绝”

I'm trying to install Golang in a Bluehost shared server.

I've done the following on the server so far:

cd ~
wget https://storage.googleapis.com/golang/go1.3.1.linux-amd64.tar.gz
tar -xvf go1.3.1.linux-amd64.tar.gz
rm go1.3.1.linux-amd64.tar.gz
vi .bashrc

I set the .bashrc file with the local values I want Go to work with.

# Configuration for Go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Then I run:

source ~/.bashrc
cd ~/go/src
./all.bash

And all goes well until the testing:

warning: GOPATH set to GOROOT (/home1/username/go) has no effect
...
fork/exec /tmp/go-build667300507/cmd/addr2line/_test/addr2line.test: permission denied
FAIL    cmd/addr2line   0.053s
?       cmd/cgo [no test files]
...

After that every single test fails, because I don't have access to /tmp. I was thinking maybe there is a variable to set the tests some place I do have access to, but I haven't found it.

About GOPATH set to GOROOT (/home1/username/go) has no effect. I've ran:

echo $GOROOT

And it is not set. So whats going on?

You should add GOROOT to your .bashrc:

export GOROOT=$HOME/go1.3.1.linux-amd64/go
# or, depending how the archive was un-tar'd:
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin

GOPATH should be set to a workspace, a folder where your projects will reside

export GOPATH=$HOME/goprojects
export PATH=$PATH:$GOPATH/bin

You will have src, bin and pkg in GOPATH.


Remember, the go1.3.1.linux-amd64.tar.gz archive is for using go directly (it has binaries pre-compiled).

Doing a all.bash makes sense only if you build go from sources, but in that case, you would need only the sources (go1.3.1.src.tar.gz).