跳转到主要内容

介绍


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


接下来,导航到 Web 浏览器中的官方 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 校验和:

Output
go1.16.7.linux-amd64.tar.gz
7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04  go1.16.7.linux-amd64.tar.gz


如果校验和与下载页面上列出的校验和匹配,则您已正确完成此步骤。

接下来,使用 tar 提取 tarball。该命令包括 -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


然后,将以下信息添加到文件末尾:

sudo nano ~/.profile

. . .
export PATH=$PATH:/usr/local/go/bin


将此信息添加到您的个人资料后,保存并关闭文件。如果您使用 nano,请按 CTRL+X,然后按 Y,然后按 Enter。

接下来,通过运行以下命令刷新您的个人资料:

source ~/.profile


之后,通过运行 go version 检查是否可以执行 go 命令:

go version


此命令将输出系统上安装的任何 Go 版本的版本号:

Output
go 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!在您喜欢的文本编辑器中转到文件:

nano hello.go


将以下文本添加到 hello.go 文件中:

hello.go

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

然后,按 CTRL+X、Y 和 ENTER 保存并关闭文件。

测试您的代码以检查它是否打印了 Hello, World!问候:

go run .

 

Output
Hello, 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

Output
Hello, World!


这确认您已成功将 hello.go 代码转换为可执行二进制文件。但是,您只能从该目录中调用此二进制文件。如果您想从服务器上的不同位置运行此程序,则需要指定二进制文件的完整文件路径才能执行它。

输入二进制文件的完整文件路径很快就会变得乏味。作为替代方案,您可以运行 go install 命令。这类似于 go build 但不是将可执行文件保留在当前目录中,而是将其放在 $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

Output
Hello, World!


如果您收到 Hello, World!输出,您已经成功地使您的 Go 程序可以从您服务器上的特定和未指定路径执行。

结论


通过下载和安装最新的 Go 包并设置其路径,您现在拥有一个用于 Go 开发的系统。您可以在我们的“Go”标签中找到并订阅有关安装和使用 Go 的其他文章

文章链接