使用Update-golang脚本在Linux中轻松安装Golang

正在安装 Linux中的编程语言没什么大不了的。 安装和配置Go语言仅需几分钟。 好消息是,现在使用Linux在Golang中安装Golang变得更加容易 更新golang 脚本。

Update-golang是一个shell脚本,可以以最少的用户交互轻松获取和安装最新的Golang版本。 现在,借助此脚本,任何人都可以轻松地在其Linux机器上安装稳定的Go发行版。 一切都是自动化的! 只需运行此脚本,然后坐下即可。 该脚本将执行以下操作:

  1. 首先,Update-golang脚本将从以下位置搜索最新可用的Golang二进制文件: Golang发布历史记录页面
  2. 接下来,它将找到您的Linux系统的OS版本和体系结构,以下载匹配的二进制文件。 下载的文件将保存在 /usr/local 目录。 您可以在安装Go之后将其删除。
  3. 下载正确的Go二进制文件后,将其安装在 /usr/local/go 地点。
  4. 接下来,路径 /usr/local/go/bin 已添加到您的 $PATH
  5. 然后,它将设置GOROOT路径。
  6. 最后,它将通过运行以下命令测试Golang安装 hello world 程序。

该脚本不仅适用于新安装,还可以使用它将当前安装的Go版本更新为下一个可用版本!

使用Update-golang脚本在Linux中安装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

如果输出确定为OK,那就很好了。

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

使用Update-golang脚本在Linux中安装Golang

查看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测试版或候选发布(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

资源:

相关阅读:

  • 在Linux中使用Conda创建Golang虚拟环境

GoGo编程语言GoLangLinuxShell脚本Update-golang

Sidebar