go-nv / goenv

:blue_car: Like pyenv and rbenv, but for Go.
https://github.com/go-nv/goenv
MIT License
2.01k stars 245 forks source link

go doesn't work if have `/usr/bin/go` #279

Open atomita opened 1 year ago

atomita commented 1 year ago

https://github.com/syndbg/goenv/issues/247 moved the shims directory to the end of the PATH, so go doesn't work if have /usr/bin/go.

# the shims directory to the end of the PATH
which go
/usr/bin/go
# the shims directory to the start of the PATH
which go
~/.anyenv/envs/goenv/shims/go
stevegt commented 1 year ago

@atomita I stopped installing /usr/bin/go on any build machine when I started using goenv years ago -- too many opportunities for confusion if it's left in place. Removing your system Go would be my recommendation. Is there a reason that can't be done on your platform?

ChronosMasterOfAllTime commented 1 year ago

Maybe goenv should check if there is a "system" version and warn about the behavioral PATH collision?

stevegt commented 1 year ago

Future folks who find this thread -- please see https://github.com/syndbg/goenv/issues/247#issuecomment-1460643733.

@ChronosMasterOfAllTime That may not be a bad idea -- I don't have the bandwidth to think through if or how it would work. Are you volunteering? ;-)

Otherwise something in the README might be in order -- I just spotted #289; there will likely be others.

ChronosMasterOfAllTime commented 11 months ago

@ankitcharolia our version doesn't have a dependency on go or Python. It uses native shell which makes it more portable.

gl-yziquel commented 1 month ago

goenv should override the system go. But not require it removed.

I had to remove it, and each time I play with my package manager in debian, I fear a chain of dependencies breaking. Luckily, not much dependencies. But you never know when some random install or script pulls in the go dependency back.

So, really, it should not be a "just remove the system go" "solution"... goenv should override the system go.