Go 是一种静态类型编程语言。Go 最初由 Google 设计,在语法上与 C 相似。然而,在功能上,Go 具有内存安全、垃圾回收、结构化类型等额外特性。在过去几年中,Go 变得非常流行。
本指南将 通过一个演示 Go 程序来介绍构建和安装 Go 程序的步骤。
Go 构建和安装
在深入探讨之前,我们先快速了解一下在 Go 编程中构建和安装的含义。
在 Go 编程中,构建是指将源代码翻译成二进制可执行文件的过程。该可执行文件将包含必要的支持代码,以便它可以在目标平台上独立运行。与 Ruby/Python 程序不同,Go 二进制文件通常不需要任何系统依赖项即可在新系统上运行。
将 Go 二进制文件放入系统的可执行文件路径中称为安装程序。如前所述,本指南将演示一个简单的 Go “Hello world” 程序的运行、构建和安装。
前提条件
在开始之前,我们先来看看您需要满足哪些前提条件才能继续本教程:
- 一个配置妥当的 Ubuntu 20.04。查看 如何安装和配置 Ubuntu 服务器.
- 一个具有 sudo 权限的非 root 用户。执行系统级更改需要 root 权限。通过本教程,您可以学习如何 向非 root 用户授予 sudo 权限.
- 正确 配置的 Go 编程环境.
首先,我们将快速浏览一下安装和配置 Go 编程环境的过程。如需更深入的逐步 安装 Go 指南,请点击这里.
安装 Go
Go 适用于所有主流平台(Windows、Linux 和 macOS)。官方可直接从 Golang 获取。由于该网站的名称,Go 经常被称为 Golang。在这里,我们将始终把 Go 编程语言称为 Go,把 Golang 网站称为 Golang。
Golang 提供了关于 所有受支持平台的 Go 安装的详细文档。然而,官方方法描述的是手动安装。每次发布新版本时,您都必须手动将安装更新到最新版本。相反,我们可以直接使用 APT(从默认的 Ubuntu 软件源)或 snap(从 Snapcraft).
● 使用 APT 安装 Go
Go 可以直接从官方 Ubuntu 软件源中获取。然而,它并不总是最新版本的 Go。Ubuntu 软件源中还提供了两种变体的 Go: golang-go 和 gccgo-go。虽然 golang-go 是来自 Golang 的官方版本,而 gccgo-go 则是 GCC 的 Go 前端(作为 GNU 编译器的一部分)。通常, golang-go 是首选。
要安装 golang-go,请运行以下 APT command:
|
1 |
sudo apt update && sudo apt install golang-go |

检查 Go 版本:
|
1 |
go version |
● 使用 snap 安装 Go
Snap 是通用的 Linux 软件包,可以安装在任何受支持的发行版上。Snapcraft 列出了所有 受支持的发行版及其安装指南。在 Ubuntu 上,默认启用了 snap 支持。Go 也可以作为 snap 获取。您需要记住,它不是由 Golang 官方维护的。该 snap 包由第三方提供商管理。
要安装 Go snap,请运行以下命令:
|
1 |
sudo snap install go --classic |

然后,检查 Go 版本:
|
1 |
go version |
设置 Go 项目
我们的系统已经具备了开始使用 Go 开发应用所需的所有工具。是时候建立我们的演示项目了。首先,为我们的项目创建一个专用目录:
|
1 |
mkdir -v demo_project |

接下来,将当前目录切换到新创建的目录:
|
1 |
cd demo_project/ |

在这里,创建一个名为 main.go:
|
1 |
nano main.go |
以下代码包含一个简单的程序,运行时将打印 “Hello world”。复制该代码:
|
1 2 3 4 5 6 7 |
package main import "fmt" func main() { fmt.Println("hello world!") } |

保存文件并关闭编辑器。验证代码是否正常运行:
|
1 |
go run main.go |

Go 编译器将源文件构建为二进制文件并执行了它。这也验证了程序正在成功运行。
Go 工作区配置
为了正确安装 Go 程序,我们需要配置 Go 工作区和 GOPATH。
首先,创建目录结构:
|
1 |
mkdir -pv $HOME/go/{bin,src} |

接下来,我们需要声明 GOPATH 的值,并将其添加到 PATH 中。打开 bashrc 文件:
|
1 |
nano ~/.bashrc |

在文件末尾添加以下行:
|
1 2 3 |
export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin |

重新加载 bashrc:
|
1 |
source ~/.bashrc |
验证更改是否成功:
|
1 |
echo $PATH |
构建 Go 二进制文件
本节将演示如何将 Go 代码编译为可分发的独立二进制文件。该二进制文件不仅包含 Go 代码,还包含运行该二进制文件所需的其他系统代码。要编译我们的代码,请运行以下命令:
|
1 |
go build main.go |

如果有多个 Go 代码文件,请使用以下命令:
|
1 |
go build |
如果未指定文件,Go 将在当前目录中搜索 Go 文件并编译所有这些文件。每个二进制文件都以其源 Go 文件命名。在此示例中,Go 构建了程序 main。运行该程序:
|
1 |
./main |

该程序已准备好分发到其他计算机。
● 更改二进制文件名称
每当构建时,Go 都会自动为可执行文件选择一个名称。在选择名称时,有两种可能的选项。
- 如果 Go modules 模块,则可执行文件将使用模块名称的最后一部分。
- 如果不使用 Go 模块,则 Go 将使用当前目录的名称或源文件的名称。
处理更复杂的程序需要不同的命名规范。在这种情况下,这些默认的命名方法并不是很有用。在这种情况下,最好的方法是使用标志 -o 自定义输出。让我们进行一个快速演示。使用标志 -o 来指定不同的文件名:
|
1 |
go build -o bin/hello |

标志 -o 会告诉 Go 将输出与给定的参数相匹配。在这种情况下,可执行文件将位于目录 bin 下并命名为 hello.
接下来,测试新的可执行文件:
|
1 |
./bin/hello |
安装 Go 程序
到目前为止,我们已经演示了如何从源文件构建可分发的 Go 二进制文件。我们可以在其他系统上分发它们、进行部署和测试。但是,它们无法在其源目录之外执行。如果您计划积极使用该程序,那么这个限制可能会非常令人烦恼。为了让事情变得更容易,我们可以安装 Go 程序并从整个系统的任何地方访问它们。
要安装该程序,请在源目录中运行以下 Go 命令:
|
1 |
go install |

此命令的行为与 go build 相同。但是,它不会将可执行文件留在源目录中,而是将其放入以下目录中:
|
1 |
$GOPATH/bin |
变量 GOPATH 和 GOBIN 会告诉 Go 在哪里寻找 Go 工作区。 GOPATH 默认是位置 $HOME/go。我们手动将 GOBIN 设置为 $GOPATH/bin。要检查 GOPATH 和 GOBIN ,请使用以下命令:
|
1 |
go env GOPATH |
|
1 |
go env GOBIN |

检查 $GOPATH/bin 的内容。我们的程序应该就在那里:
|
1 |
ls $GOPATH/bin |

是时候验证安装是否成功了。将当前目录更改为其他位置,然后尝试运行 Go 程序:
|
1 |
demo_project |

最后,您应该能够将程序安装到系统中。这样,您就可以随时随地在需要时使用它们。
结语
在本教程中,我们成功演示了如何使用 Go 工具链从源代码构建可执行二进制文件。即使没有任何 Go 配置,这些二进制文件也可以在其他系统上使用。最后,我们演示了如何安装 Go 程序,使其在系统的任何地方都可用。
对于开发人员, CloudSigma 提供 Go API 支持 来管理您的云服务器。它支持编辑资源和扩展基础设施。
祝您计算愉快!




评论
暂无评论。发表第一条评论吧。