Description
What version of Go are you using (go version
)?
go version go1.15.1 linux/amd64
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/dean/.cache/go-build" GOENV="/home/dean/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/dean/src/golang/go3p/pkg/mod" GONOPROXY="ubuntu-18-extssd" GONOSUMDB="ubuntu-18-extssd" GOOS="linux" GOPATH="/home/dean/src/golang/go3p:/home/dean/src/golang/examples/go-module-package-test/package/package-driver" GOPRIVATE="ubuntu-18-extssd" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/dean/bin/go1.15.1.linux-amd64/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/dean/bin/go1.15.1.linux-amd64/go/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" 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 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build013931004=/tmp/go-build -gno-record-gcc-switches"
What did you do?
I have a git repo on a computer on my network (hostname ubuntu-18-extssd, IP 192.168.0.12):
$ git remote --v
origin dean@ubuntu-18-extssd:gitrepo/go-package-test-stringutil (fetch)
Inside of the repo is a package stringpackage.
The go get command fails:
$ go get -v ubuntu-18-extssd/gitrepo/go-package-test-stringutil/stringpackage
package ubuntu-18-extssd/gitrepo/go-package-test-stringutil/stringpackage: unrecognized import path "ubuntu-18-extssd/gitrepo/go-package-test-stringutil/stringpackage": import path does not begin with hostname
So I try with the IP address:
$ go get -v 192.168.0.12/gitrepo/go-package-test-stringutil/stringpackage
package 192.168.0.12/gitrepo/go-package-test-stringutil/stringpackage: unrecognized import path "192.168.0.12/gitrepo/go-package-test-stringutil/stringpackage": https fetch: Get "https://192.168.0.12/gitrepo/go-package-test-stringutil/stringpackage?go-get=1": dial tcp 192.168.0.12:443: connect: connection refused
I add the following to ~/.gitconfig:
[url "ssh://[email protected]:"]
insteadOf = https://192.168.0.12/
I get the same error.
I've tried multiple ways of setting GOPRIVATE
export GOPRIVATE=192.168.0.12/gitrepo/*
export GOPRIVATE=ubuntu-18-extssd
but get the same error.
You need to actually try this on a local computer with a non-routeable IP address. I've tried the same thing on github.com and it works. The go get
command only wants to work on public, routeable IP addresses.
Many companies keep their source code internally on hosts with non-routable IP addresses, and this prevents sharing code and makes using modules impossible.