Помимо прочего, вы пытались клонировать репозиторий на ~/go
и редактировали ~/.bashrc
, чтобы указать $GOROOT
на ~/gosource
.
Прочтите инструкции Go Getting Started внимательно.Либо скопируйте и вставьте команды, либо проверьте, что вы печатаете очень внимательно;очень внимательно проверьте ввод, прежде чем нажать Enter.Для команд знак $
представляет командную строку, не вводите ее.Помните, что в Linux учитывается регистр, и важно различать /
и \
.Очень внимательно проверяйте вывод команд;Имеет ли смысл вывод?Запустите диагностические команды, такие как env
, pwd
, which
и uname
.Когда вы видите полосы прокрутки в ответе Переполнение стека, прокрутите весь код и выведите.
Сначала настройте ~/.bashrc
.
$ gedit ~/.bashrc
export GOROOT=$HOME/go
export GOARCH=amd64
export GOOS=linux
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
Закройте все открытые окна терминала, а затем откройтеновое окно терминала для проверки новых ~./bashrc
и других значений.
$ 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
Затем клонируйте репозиторий в $GOROOT
, и вы будете клонировать и компилировать из того же места.
$ 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
Вы не опубликовали свой вывод, поэтому я могу только догадываться, в чем заключаются ваши проблемы.
Например, вы говорите «каталог - это Go», он должен быть «идти»;поскольку в Linux учитывается регистр символов, «Go» и «go» различаются.
Если вы опустите пункт назначения $GOROOT
в команде hg clone
или $GOROOT
не задан, hg clone
по умолчанию будеткаталог hg
.Например,
$ env | grep '^GOROOT'
GOROOT=
$ hg clone -u release https://go.googlecode.com/hg/ $GOROOT
destination directory: hg
Поскольку у вас GOARCH=amd64
, вы должны запустить 64-разрядную версию Linux Mint на процессоре x86_64
.Что говорит ваш вывод uname -a
?Вы хотите, чтобы программы 6g
и 6l
компилировались и связывались на процессоре x86_64
, который должен находиться в вашем каталоге $GOBIN
, который должен находиться в вашем $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
Вы также должны были это увидеть, прочитав конец команды ./all.bash
.
ALL TESTS PASSED
---
Installed Go for linux/amd64 in /home/peter/go.
Installed commands in /home/peter/go/bin.
The compiler is 6g.