安装 走 Linux 中的编程语言没什么大不了的。 安装和配置 Go 语言只需要几分钟。 好消息是现在在 Linux 中安装 Golang 更加容易 更新类 脚本。
Update-golang 是一个 shell 脚本,可以以最少的用户交互轻松获取和安装最新的 Golang 版本。 借助此脚本,任何人现在都可以轻松地在他们的 Linux 机器上安装稳定的 Go 版本。 一切都是自动化的! 只需运行此脚本并坐下来。 该脚本将执行以下操作:
- 首先,Update-golang 脚本将从 Golang 发布历史页面搜索最新可用的 Golang 二进制文件。
- 接下来,它将找到您的 Linux 系统的操作系统版本和体系结构以下载匹配的二进制文件。 下载的文件将保存在
/usr/local
目录。 您可以在安装 Go 后删除它们。 - 一旦下载了正确的 Go 二进制文件,它就会安装在
/usr/local/go
地点。 - 接下来是路径
/usr/local/go/bin
已添加到您的$PATH
. - 然后,它将设置 GOROOT 路径。
- 最后,它将通过运行以下命令来测试 Golang 安装
hello world
程序。
此脚本不仅适用于新安装,您还可以使用它来将当前安装的 Go 版本更新到下一个可用版本!
内容
在 Linux 中使用 Update-golang 脚本安装 Golang
通过从 GitHub 克隆其存储库来下载 Update-golang 脚本:
$ git clone https://github.com/udhos/update-golang
上面的命令会将官方 update-golang 仓库的内容克隆到一个名为的本地目录中 update-golang
. cd 到这个目录:
$ cd update-golang
始终建议检查从 Internet 下载的脚本的完整性。 所以让我们通过验证 update-golang 脚本的 CHECKSUM 值来做到这一点:
$ wget -qO hash.txt https://raw.githubusercontent.com/udhos/update-golang/master/update-golang.sh.sha256
$ sha256sum -c hash.txt
如果输出正常,就可以开始了。
update-golang.sh: OK
验证 chekcsum 后,运行以下命令在您的 Linux 机器上安装最新的 Golang 版本:
$ sudo ./update-golang.sh
示例输出:
update-golang.sh: version 0.24 update-golang.sh: find_latest: found last release: 1.16.2 update-golang.sh: user: uid=0(root) gid=0(root) groups=0(root) update-golang.sh: RELEASE_LIST=https://golang.org/dl/ update-golang.sh: SOURCE=https://storage.googleapis.com/golang update-golang.sh: DESTINATION=/usr/local update-golang.sh: RELEASE=1.16.2 update-golang.sh: OS=linux update-golang.sh: ARCH_PROBE=uname -m update-golang.sh: ARCH=amd64 update-golang.sh: PROFILED=/etc/profile.d/golang_path.sh update-golang.sh: CACHE=/usr/local update-golang.sh: GOPATH= update-golang.sh: DEBUG= update-golang.sh: update-golang.sh: will install golang go1.16.2.linux-amd64 as: /usr/local/go update-golang.sh: https://storage.googleapis.com/golang/go1.16.2.linux-amd64.tar.gz is remote --2021-03-30 06:02:35-- https://storage.googleapis.com/golang/go1.16.2.linux-amd64.tar.gz Resolving storage.googleapis.com (storage.googleapis.com)... 2404:6800:4009:81f::2010, 2404:6800:4009:820::2010, 2404:6800:4009:81d::2010, ... Connecting to storage.googleapis.com (storage.googleapis.com)|2404:6800:4009:81f::2010|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 129010536 (123M) [application/octet-stream] Saving to: ‘/usr/local/go1.16.2.linux-amd64.tar.gz’ /usr/local/go1.16.2.linux-amd64.t 100%[=============================================================>] 123.03M 501KB/s in 5m 2s 2021-03-30 06:07:40 (417 KB/s) - ‘/usr/local/go1.16.2.linux-amd64.tar.gz’ saved [129010536/129010536] update-golang.sh: remove_old_link: not found symlink for old install update-golang.sh: untar: tar -x -f /usr/local/go1.16.2.linux-amd64.tar.gz update-golang.sh: profile_path_add: issuing new /usr/local/go/bin to /etc/profile.d/golang_path.sh update-golang.sh: profile_path_add: issuing $HOME/go/bin to /etc/profile.d/golang_path.sh update-golang.sh: golang go1.16.2.linux-amd64 installed at: /usr/local/go update-golang.sh: testing: /usr/local/go/bin/go version update-golang.sh: unsudo: running_as_root:ostechnix: /usr/local/go/bin/go version update-golang.sh: go version go1.16.2 linux/amd64 update-golang.sh: /usr/local/go/bin/go version: SUCCESS update-golang.sh: unsudo: running_as_root:ostechnix: mktemp -t hello-tmpXXXXXXXX update-golang.sh: unsudo: running_as_root:ostechnix: tee /tmp/hello-tmpqGBVcjhy.go update-golang.sh: testing: /usr/local/go/bin/go run /tmp/hello-tmpqGBVcjhy.go update-golang.sh: unsudo: running_as_root:ostechnix: /usr/local/go/bin/go run /tmp/hello-tmpqGBVcjhy.go update-golang.sh: hello, world update-golang.sh: /usr/local/go/bin/go run /tmp/hello-tmpqGBVcjhy.go: SUCCESS update-golang.sh: running_as_root: yes update-golang.sh: recursively forcing build cache [/home/ostechnix/.cache/go-build] ownership to 1000:1000
查看Golang版本和环境信息
要验证安装的 Go 版本,请运行:
$ go version go version go1.16.2 linux/amd64
可以看到,Update-golang 脚本已经安装了 Go 版本 1.16.2. 这是撰写本指南时最新、稳定的 Go 版本。
要打印 Go 环境信息,请运行:
$ go env
示例输出:
GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/ostechnix/.cache/go-build" GOENV="/home/ostechnix/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/ostechnix/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/ostechnix/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GOVCS="" GOVERSION="go1.16.2" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/dev/null" 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=/tmp/go-build883237217=/tmp/go-build -gno-record-gcc-switches"
安装 Golang beta 或发布候选 (RC) 版本
默认情况下,Update-golang 脚本将安装最新的稳定版本。 如果你想安装任何 beta 或发布候选版本,明确提及如下版本:
安装 Golang beta:
$ sudo RELEASE=1.9beta1 ./update-golang.sh
安装候选版本 (RC):
$ sudo RELEASE=1.11rc1 ./update-golang.sh
Golang 每用户安装
默认情况下,Update-golang 脚本会在系统范围内安装 Golang。 如果要为当前用户安装 Golang,只需创建一个安装目录,例如 ~/golang
:
$ mkdir ~/golang
然后使用命令安装 GO:
$ DESTINATION=~/golang PROFILED=~/.profile ./update-golang.sh
请注意,每用户安装不需要 root
或者 sudo
允许。
防止缓存下载的文件
如前所述,Update-golang 脚本会将下载的档案保存在 /usr/local
目录。 如果您不想缓存存档文件,只需使用 -declutter
选项:
$ sudo ./update-golang.sh -declutter
这次不会缓存安装文件。
删除 Golang
要撤消 Update-golang 脚本完成的所有步骤,请转到克隆的目录并运行:
$ sudo ./update-golang.sh remove
此命令将从 $PATH 中删除 Go 和所有相关条目。
update-golang.sh: version 0.24 update-golang.sh: find_latest: found last release: 1.16.2 update-golang.sh: remove: found symlink for old install: /usr/local/go1.16.2.linux-amd64 update-golang.sh: remove: removing symlink: /usr/local/go update-golang.sh: remove: removing dir: /usr/local/go1.16.2.linux-amd64 update-golang.sh: profile_path_remove: removing old settings from: /etc/profile.d/golang_path.sh
资源:
- 更新组 GitHub 存储库
相关阅读:
- 在 Linux 中使用 Conda 创建 Golang 虚拟环境
GoGo 编程语言GoLangLinuxShell 脚本Update-golang