Изменить папку GOCACHE по умолчанию в Ubuntu Linux - PullRequest
0 голосов
/ 07 декабря 2018

Я должен поместить все файлы, которые GO создает внутри структуры GO, а не разбросанные.Изменяя GOPATH и GOROOT, я заметил папку сборки в ~ / .cache / go-build.

Этот SO поток вообще не помог, ни статьяэто ссылки .Похоже, это не имеет прямого отношения к этому.Как я могу изменить его?

Редактировать: проблема не в том, как найти GOCACHE, который, как я уже знаю, можно просмотреть с помощью go env GOCACHE, а в , как я могу это изменитьпапка .

Я пытался добавить в ~ / .bashrc: export GOCACHE=$HOME/path/to/folder, и теперь, когда я использую go env GOCACHE, он указывает на новую папку, но все еще пытается отправитьфайлы в ~/.cache/go-build.Файл журнала теперь возвращает следующую ошибку:

go: disabling cache (/home/<me>/.cache/go-build) due to initialization failure: mkdir /home/<me>/.cache/go-build: permission denied

1 Ответ

0 голосов
/ 07 декабря 2018

Отображаемая ошибка

go: disabling cache (/home/<me>/.cache/go-build) due to initialization failure: mkdir /home/<me>/.cache/go-build: permission denied

Причина в том, что каталог /home/<me>/.cache/go-build не существует и отсутствуют разрешения на создание нового каталога.Этого не должно быть, кажется, что какой-то неизвестный фактор в вашем процессе сборки нарушает настройки GOCACHE

У вас буквально есть пользователь по имени <me>?Это довольно необычно и не рекомендуется, так как <> являются метасимволами оболочки

Что касается установки пути, см. https://github.com/golang/go/blob/master/src/cmd/go/internal/cache/default.go и https://golang.org/pkg/os/#UserCacheDir

Если установлена ​​переменная env GOCACHEтогда он использует это.Если нет, он использует os.UserCacheDir, который обычно имеет значение $ HOME / .cache, но его можно переопределить, см. Документы

. Простой ответ - установить переменную env GOCACHE в область содержания Go

Просто чтобы уточнить.Go компилятор и инструменты работают в другой среде.

В этой другой среде установлены переменные, которые Go будет соблюдать

В системах Linux такой средой обычно является оболочка bash.В оболочке bash для установки GOPATH часто используется команда "export GOPATH = $ HOME / go", чтобы настроить GOPATH для папки с именем go в домашнем каталоге текущего пользователя.Чтобы установить GOCACHE, установите переменную в среде, которую вы используете, и Go заберет ее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...