Установка пакета в GOPATH в каталог с go.mod

Я хочу установить пакет в GOPATH, используя go get. Это стало непросто, когда инструменты go были перенесены на поддержку модов go.

Нет проблем вне директории проекта (= директории с файлом go.mod). В каталоге проекта я ожидал, что установка переменной G0111MODULE должна выполнить свою работу, но это не так.

G0111MODULE=off go get <package name>

Как я могу установить пакет в GOPATH в каталоге, содержащем go.mod файл? Спасибо.

go env вывод:

GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/zb/Library/Caches/go-build"
GOENV="/Users/zb/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/zb/dev/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/Cellar/go/1.13/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.13/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/zb/dev/mycopmany/links/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/gf/8xg53y0j2h9d3k5g3_vvvw9m0000gn/T/go-build248955952=/tmp/go-build -gno-record-gcc-switches -fno-common"

person zdebra    schedule 27.09.2019    source источник
comment
Вы можете запустить go get из другого каталога, но знайте, что go повторно загрузит его, если вы хотите использовать его в своем проекте модулей go (поскольку зависимости хранятся по другому пути).   -  person Adrian    schedule 27.09.2019
comment
Почему вы хотите установить его в GOPATH, если вы используете модули? Если это для локальной разработки, просто клонируйте репо (что, конечно, можно сделать в старом GOPATH)   -  person JimB    schedule 27.09.2019
comment
Я не думаю, что это нереальный вариант использования. Я уже сталкивался с этим пару раз: я над чем-то работаю и в то же время хочу установить программу go, которая была бы доступна как инструмент командной строки.   -  person zdebra    schedule 27.09.2019
comment
Поделитесь выводом после выполнения команды go env из каталога, в котором находится файл go.mod.   -  person ialam    schedule 28.09.2019
comment
Я добавил go env вывод.   -  person zdebra    schedule 29.09.2019


Ответы (1)


Переменная называется GO111MODULE (с буквой O), а не G0111MODULE (с номером 0).

person bcmills    schedule 12.03.2020