多个版本的go

Cli*_*iff 3 go

我正在尝试按照此处的官方文档学习 go-lng:https : //golang.org/doc/install

我被困在安装额外 go 版本的步骤上。显然,这一行应该安装不同版本的 go 并使可执行文件在我的 $PATH 中可用,但它没有发生:

go get golang.org/dl/go1.10.7
Run Code Online (Sandbox Code Playgroud)

相反,我看到的是:

c.craig$ go get golang.org/dl/go1.10.7
c.craig$ go1.10.7 download
-bash: go1.10.7: command not found
Run Code Online (Sandbox Code Playgroud)

我哪里错了?我已经尝试了一个空格,假设这只是文档中的一个错字,但即使这样也不起作用:

c.craig$ go get golang.org/dl/go1.10.7
c.craig$ go 1.10.7 download
go 1.10.7: unknown command
Run Code Online (Sandbox Code Playgroud)

小智 32

在 .bash_profile 中设置以下路径变量后(不要忘记运行:source ~/.bash_profile)

$ export GOPATH=$HOME/go
$ export GOBIN=$HOME/go/bin
Run Code Online (Sandbox Code Playgroud)

在一个终端中安装 go 版本:

$ go get golang.org/dl/go1.13.15
$ go1.13.15 download
Run Code Online (Sandbox Code Playgroud)

现在你还想通过执行以下命令来安装另一个 go 版本,例如 go1.15.13 (请记住按照上面的说明设置路径)

$ go get golang.org/dl/go1.15.13
$ go1.15.13 download
Run Code Online (Sandbox Code Playgroud)

现在你已经安装了两个 go 版本;1.13.15 和 1.15.13。

假设在一个终端中,您想要使用版本 1.13.15,这样您就可以在该终端窗口中创建一个别名,如下所示:

$ alias go="go1.13.15"
$ go version
go version go1.13.15 darwin/amd64
Run Code Online (Sandbox Code Playgroud)

在另一个终端中您可以切换到不同的版本

$ alias go="go1.15.13"
$ go version
go version go1.15.13 darwin/amd64
Run Code Online (Sandbox Code Playgroud)

  • 这是根据 [golang.org](https://golang.org/doc/manage-install#installing-multiple) 官方推荐的方法 (4认同)

Ser*_*nov 11

您不妨尝试一下Go 版本管理器( gvm):

curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer | bash
gvm listall
gvm install go1.10.7 [-B] 
gvm use go1.10.7 [--default]
gvm list
Run Code Online (Sandbox Code Playgroud)

如果您想从源代码编译但尚未go安装:

gvm install go1.4 -B
gvm use go1.4
#CGO_ENABLED=0
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.10.7
gvm use go1.10.7
Run Code Online (Sandbox Code Playgroud)

如果您遇到编译错误,您可能希望CGO_ENABLED=0在从源代码编译之前取消注释。


don*_*h96 8

我在尝试安装版本 1.17.11 时遇到了同样的问题,我的基本版本是 1.18.2。

按照此处的说明进行操作https://go.dev/doc/manage-install但它对我不起作用。然后,我意识到,运行后go install golang.org/dl/go<version>@latest<version>您需要的版本在哪里),go<version>将下载一个二进制文件名$HOME/go/bin/

移动到$HOME/go/bin/,运行./go<version> download,您需要的版本将在以下位置下载:$HOME/sdk/

要使用您刚刚下载的版本,请将此行添加到文件末尾~/.bashrc

alias go<version>=$HOME/sdk/go<version>/bin/go
Run Code Online (Sandbox Code Playgroud)

保存并退出。运行source ~/.bashrc来执行它!


Pau*_*kin 7

二进制文件已安装$HOME/go/bin(或者更准确地说是bin您从 获得的路径下的目录go env GOPATH)。该go get命令不会更新您的$PATH,因此您需要将安装目录添加到您$PATH自己。