What’s happening here is that you are pulling in more dependencies than you 
expect.

$ rm -rf ~/go
$ go get -u mvdan.cc/sh/cmd/shfmt<http://mvdan.cc/sh/cmd/shfmt>

In those commands, you downloaded the repo mvdan.cc/sh<http://mvdan.cc/sh> and 
build cmd/shfmt that is part of it, while also downloading the dependencies for 
that.

$ go get -v -u ./…

Here you are updating and building all packages on disk, with their 
dependencies. This is more than you originally asked for, because your repo has 
more packages and commands that you didn’t compile the first time. They might 
have dependencies that need to be pulled in.

Likewise, things that depend on for example 
golang.org/x/crypto/ssh/terminal<http://golang.org/x/crypto/ssh/terminal> will 
compile that package but download the *repo* which is 
golang.org/x/crypto<http://golang.org/x/crypto>. Your “update all” command will 
build all packages in that repo, and pull all their dependencies.

Next time, you’ll pull all dependencies for all packages in all repos 
previously downloaded as dependencies, and so on.

In the end I don’t think this has anything to do with distro packages. It’s 
just that “go get” downloads repos, while compiling packages. The “all” and 
“./…” will however match everything on disk, which includes more than the named 
dependencies.

//jb

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to