如何在Ubuntu20.04上安装Go
介绍
Go,有时也称为“Golang”,是谷歌于 2012 年发布的一种开源编程语言。 谷歌的目的是创建一种可以快速学习的编程语言。
自发布以来,Go 在开发人员中非常流行,并被用于从云或服务器端应用程序到人工智能和机器人技术的各种应用程序。 本教程概述了如何在 Ubuntu 20.04 服务器上下载和安装最新版本的 Go(当前版本 1.16.7),构建著名的 Hello, World!
应用程序,并将您的 Go 代码变成可执行二进制文件以供将来使用。
先决条件
本教程需要一个 Ubuntu 20.04 系统,该系统配置了具有 sudo
权限的非 root 用户和防火墙,如 使用 Ubuntu 20.04 的初始服务器设置中所述。
第 1 步 — 安装 Go
在此步骤中,您将在服务器上安装 Go。
首先,通过 ssh
连接到您的 Ubuntu 服务器:
ssh sammy@your_server_ip
接下来,在您的网络浏览器中导航到 官方 Go 下载页面 。 从那里,复制当前二进制版本的 tarball 的 URL。
在撰写本文时,最新版本是 go1.16.7。 要在 Ubuntu 服务器(或任何 Linux 服务器)上安装 Go,请复制以 linux-amd64.tar.gz
结尾的文件的 URL。
现在您已经准备好链接,首先确认您在主目录中:
cd ~
然后使用 curl
检索 tarball,确保将突出显示的 URL 替换为您刚刚复制的 URL。 -O
标志确保此输出到文件,L
标志指示 HTTPS 重定向,因为此链接取自 Go 网站,并将在文件下载之前重定向到此处:
curl -OL https://golang.org/dl/go1.16.7.linux-amd64.tar.gz
要验证您下载的文件的完整性,请运行 sha256sum
命令并将其作为参数传递给文件名:
sha256sum go1.16.7.linux-amd64.tar.gz
这将返回 tarball 的 SHA256 校验和:
Outputgo1.16.7.linux-amd64.tar.gz 7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04 go1.16.7.linux-amd64.tar.gz
如果校验和与下载页面上列出的校验和匹配,则您已正确完成此步骤。
接下来,使用 tar
提取压缩包。 此命令包括 -C
标志,它指示 tar 在执行任何其他操作之前更改到给定目录。 这意味着提取的文件将被写入 /usr/local/
目录,这是安装 Go 的推荐位置... x
标志告诉 tar
提取,v
告诉它我们想要详细的输出(正在提取的文件的列表),并且 f
告诉它我们将指定一个文件名:
sudo tar -C /usr/local -xvf go1.16.7.linux-amd64.tar.gz
虽然 /usr/local/go
是安装 Go 的推荐位置,但某些用户可能更喜欢或需要不同的路径。
第 2 步 — 设置 Go 路径
在此步骤中,您将在您的环境中设置路径。
首先,设置 Go 的根值,它告诉 Go 去哪里寻找它的文件。 您可以通过编辑 .profile
文件来执行此操作,该文件包含系统在您每次登录时运行的命令列表。
使用您喜欢的编辑器打开 .profile
,它存储在您用户的主目录中。 在这里,我们将使用 nano
:
sudo nano ~/.profile
然后,将以下信息添加到文件末尾:
须藤纳米〜/ .profile
. . . export PATH=$PATH:/usr/local/go/bin
将此信息添加到您的个人资料后,保存并关闭文件。 如果您使用 nano
,请按 CTRL+X
,然后按 Y
,然后按 ENTER
。
接下来,通过运行以下命令刷新您的个人资料:
source ~/.profile
之后,通过运行 go version
检查是否可以执行 go
命令:
go version
此命令将输出系统上安装的任何 Go 版本的版本号:
Outputgo version go1.16.7 linux/amd64
此输出确认您现在正在服务器上运行 Go。
第 3 步 — 测试您的安装
现在已经安装了 Go 并为您的服务器设置了路径,您可以尝试创建 Hello, World!
应用程序以确保 Go 正常工作。
首先,为您的 Go 工作区创建一个新目录,Go 将在该目录中构建其文件:
mkdir hello
然后进入刚刚创建的目录:
cd hello
导入包时,必须通过代码自己的模块来管理依赖。 您可以通过使用 go mod init
命令创建一个 go.mod
文件来做到这一点:
go mod init your_domain/hello
接下来,在您喜欢的文本编辑器中创建一个 Hello, World!
Go 文件:
nano hello.go
将以下文本添加到您的 hello.go
文件中:
你好.go
package main import "fmt" func main() { fmt.Println("Hello, World!") }
然后,按 CTRL+X
,然后按 Y
,然后按 ENTER
保存并关闭文件。
测试您的代码以检查它是否打印 Hello, World!
问候语:
go run .
OutputHello, World!
go run
命令从您创建的新 hello
目录和导入的路径中的 .go
源文件列表编译和运行 Go 包。 但是,您也可以使用 go build
制作一个可执行文件,这样可以节省您一些时间。
第 4 步 — 将您的 Go 代码转换为二进制可执行文件
go run
命令通常用作编译和运行需要频繁更改的程序的快捷方式。 如果你已经完成了你的代码并且想要运行它而不每次都编译它,你可以使用 go build
将你的代码变成一个 可执行二进制文件。 将您的代码构建为可执行二进制文件会将您的应用程序整合到一个文件中,其中包含执行二进制文件所需的所有支持代码。 构建二进制可执行文件后,您可以运行 go install
将程序放在可执行文件路径上,这样您就可以从系统上的任何位置运行它。 然后,您的程序将在提示时成功打印Hello, World!
,您无需再次编译程序。
试一试并运行 go build
。 确保从存储 hello.go
文件的同一目录运行它:
go build
接下来,运行 ./hello
以确认代码正常工作:
./hello
OutputHello, World!
这确认您已成功将 hello.go
代码转换为可执行二进制文件。 但是,您只能从该目录中调用此二进制文件。 如果您想从服务器上的不同位置运行此程序,则需要指定二进制文件的完整文件路径才能执行它。
输入二进制文件的完整文件路径很快就会变得乏味。 作为替代方案,您可以运行 go install
命令。 这类似于 go build
但不是将可执行文件留在当前目录中,而是 go install
将其放在 $GOPATH/bin
目录中,这将允许您从任何位置运行它你的服务器。
为了成功运行 go install
,您必须将您使用 go build
创建的二进制文件的安装路径传递给它。 要查找二进制文件的安装路径,请运行以下 go list
命令:
go list -f ‘{{.Target}}’
go list
生成存储在当前工作目录中的任何命名 Go 包的列表。 f
标志将导致 go list
根据您传递给它的任何包模板以不同的格式返回输出。 此命令告诉它使用 Target
模板,这将导致 go list
返回存储在此目录中的任何包的安装路径:
Output‘/home/sammy/go/bin/hello
这是您使用 go build
创建的二进制文件的安装路径。 这意味着安装此二进制文件的目录是 /home/sammy/go/bin/
。
将此安装目录添加到系统的 shell 路径中。 如果不同,请务必更改此命令的突出显示部分以反映系统上二进制文件的安装目录:
export PATH=$PATH:/home/sammy/go/bin/
最后,运行go install
编译安装包:
go install
只需输入 hello
即可尝试运行此可执行二进制文件
hello
OutputHello, World!
如果您收到 Hello, World!
输出,则您已成功使您的 Go 程序可以从服务器上的特定和未指定路径执行。
结论
通过下载和安装最新的 Go 包并设置其路径,您现在拥有一个用于 Go 开发的系统。 您可以在我们的 “Go”标签 中找到并订阅有关安装和使用 Go 的其他文章