Amongst other things, you tried to clone the repository to ~/go
and edited ~/.bashrc
to point $GOROOT
to ~/gosource
.
Read the Go Getting Started instructions carefully. Either copy and paste commands or check what you type very carefully; check input very carefully before you hit enter. For commands, the $
sign represents the command prompt, don't type it. Remember, Linux is case sensitive and the distinction between /
and \
is important. Check the output of commands very carefully; does the ouput make sense. Run diagnostic commands like env
, pwd
, which
, and uname
. When you see scroll bars in a Stack Overflow answer, scroll through all the code and output.
First, set up ~/.bashrc
.
$ gedit ~/.bashrc
export GOROOT=$HOME/go
export GOARCH=amd64
export GOOS=linux
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
Close any open terminal windows and then open a new terminal window to check the new ~./bashrc
and other values.
$ env | grep '^\(GO\|HOME=\|PATH=\)'
GOBIN=/home/peter/go/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/peter/go/bin
GOARCH=amd64
HOME=/home/peter
GOROOT=/home/peter/go
GOOS=linux
$ cd $GOROOT/src
$ pwd
/home/peter/go/src
$ uname -a
Linux peter 2.6.32-31-generic #61-Ubuntu SMP Fri Apr 8 18:25:51 UTC 2011 x86_64 GNU/Linux
Then clone the repository to $GOROOT
and you will clone to and compile from the same place.
$ hg clone -u release https://go.googlecode.com/hg/ $GOROOT
requesting all changes
adding changesets
adding manifests
adding file changes
added 8441 changesets with 31916 changes to 4421 files (+1 heads)
updating to branch release-branch.r57
2702 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd $GOROOT/src
$ ./all.bash
< SNIP OUTPUT >
ALL TESTS PASSED
---
Installed Go for linux/amd64 in /home/peter/go.
Installed commands in /home/peter/go/bin.
The compiler is 6g.
$ which 6g
/home/peter/go/bin/6g
You haven't posted your output, so I can only guess what your problems are.
For example, you say "the directory is Go", it should be "go"; since Linux is case sensitive, "Go" and "go" are different.
If you omit the $GOROOT
destination from the hg clone
command or $GOROOT
is not set, hg clone
will default to the hg
directory. For example,
$ env | grep '^GOROOT'
GOROOT=
$ hg clone -u release https://go.googlecode.com/hg/ $GOROOT
destination directory: hg
Since you have GOARCH=amd64
, you should be running a 64-bit version of Linux Mint on an x86_64
processor. What does your uname -a
output say? You want the 6g
and 6l
programs to compile and link on an x86_64
processor, which should be in your $GOBIN
directory, which should be in in your $PATH
.
$ env | grep '^\(GOBIN\|PATH=\)'
GOBIN=/home/peter/go/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/peter/go/bin
$ which 6g
/home/peter/go/bin/6g
You should also have seen this by reading the end of your ./all.bash
command output.
ALL TESTS PASSED
---
Installed Go for linux/amd64 in /home/peter/go.
Installed commands in /home/peter/go/bin.
The compiler is 6g.