如何在macOS上安装Go并设置本地编程环境

来自菜鸟教程
跳转至:导航、​搜索

介绍

Go 是一种在谷歌受挫后诞生的编程语言。 开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。

虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。 它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。

本教程将指导您在本地 macOS 机器上安装 Go 并通过命令行设置编程工作区。

先决条件

您将需要一台具有管理访问权限且连接到 Internet 的 macOS 计算机。

第 1 步 — 打开终端

我们将在命令行上完成大部分安装和设置,这是一种与您的计算机交互的非图形方式。 也就是说,您将输入文本并通过文本从计算机接收反馈,而不是单击按钮。 命令行,也称为 shell,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员必不可少的工具。

macOS 终端是一个可用于访问命令行界面的应用程序。 与任何其他应用程序一样,您可以通过进入 Finder,导航到 Applications 文件夹,然后进入 Utilities 文件夹来找到它。 从这里,像任何其他应用程序一样双击终端以将其打开。 或者,您可以通过按住 CMDSPACE 键来使用 Spotlight,通过在出现的框中键入终端来查找终端。

还有更多终端命令需要学习,可以让你做更强大的事情。 The article “[An Introduction to the Linux Terminal] (an-introduction-to-the-linux-terminal)” can get you better oriented with the Linux Terminal, which is similar to the macOS Terminal.

现在您已经打开了终端,您可以下载并安装 Xcode,这是安装 Go 所需的开发工具包。

第 2 步 — 安装 Xcode

Xcode 是一个 集成开发环境 (IDE),由 macOS 的软件开发工具组成。 您可以通过在终端窗口中键入以下内容来检查 Xcode 是否已安装:

xcode-select -p

以下输出表示 Xcode 已安装:

Output/Library/Developer/CommandLineTools

如果您收到错误,请在您的网络浏览器中安装 [来自 App Store 的 Xcode] ( https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ign-mpt=uo%3D2 ) 并接受默认选项。

安装 Xcode 后,返回终端窗口。 接下来,您需要安装 Xcode 的单独命令行工具应用程序,您可以通过键入以下内容来完成:

xcode-select --install

至此,Xcode 及其命令行工具应用程序已完全安装,我们准备安装包管理器 Homebrew。

第 3 步 — 安装和设置 Homebrew

虽然 macOS 终端具有 Linux 终端和其他 Unix 系统的许多功能,但它没有提供适应最佳实践的包管理器。 包管理器 是一组软件工具,可用于自动化安装过程,包括初始软件安装、软件升级和配置,以及根据需要删除软件。 他们将安装保存在一个中央位置,并且可以以常用格式维护系统上的所有软件包。 Homebrew 为 macOS 提供了一个免费的开源软件包管理系统,简化了 macOS 上的软件安装。

要安装 Homebrew,请在终端窗口中输入:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew 是用 Ruby 制作的,因此它将修改您计算机的 Ruby 路径。 curl 命令从指定的 URL 中提取脚本。 该脚本将解释它将做什么,然后暂停该过程以提示您确认。 这为您提供了有关脚本将对您的系统执行的操作的大量反馈,并让您有机会验证该过程。

如果您需要输入密码,请注意您的击键不会显示在终端窗口中,但会被记录下来。 输入密码后,只需按 return 键。 否则,当系统提示您确认安装时,按字母 y 表示“是”。

让我们来看看与 curl 命令相关的标志:

  • -f--fail 标志告诉终端窗口在服务器错误时不提供 HTML 文档输出。
  • -s--silent 标志使 curl 静音,使其不显示进度条,并与 -S--show-error 标志结合使用如果失败,它将确保 curl 显示错误消息。
  • 如果服务器报告请求的页面已移动到不同的位置,-L--location 标志将告诉 curl 将请求重做到新位置。

安装过程完成后,我们将 Homebrew 目录放在 PATH 环境变量的顶部。 这将确保 Homebrew 安装将通过 macOS 可能自动选择的工具调用,这些工具可能与我们正在创建的开发环境背道而驰。

您应该使用命令行文本编辑器 nano 使用 nano 命令创建或打开 ~/.bash_profile 文件:

nano ~/.bash_profile

在终端窗口中打开文件后,编写以下内容:

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

要保存更改,请按住 CTRL 键和字母 o,并在出现提示时按 RETURN 键。 现在您可以通过按住 CTRL 键和字母 x 来退出 nano。

通过在终端中执行以下命令来激活这些更改:

source ~/.bash_profile

完成此操作后,您对 PATH 环境变量所做的更改将生效。

您可以通过键入以下内容来确保 Homebrew 已成功安装:

brew doctor

如果此时不需要更新,终端输出将显示:

OutputYour system is ready to brew.

否则,您可能会收到运行另一个命令(例如 brew update)的警告,以确保您的 Homebrew 安装是最新的。

Homebrew 准备好后,您可以安装 Go。

    1. Step 4 — 安装 Go

您可以使用 Homebrew 通过 brew search 命令搜索所有可用的软件包。 出于本教程的目的,您将搜索与 Go 相关的包或模块:

brew search golang

注意:本教程不使用brew search go,因为它返回的结果太多。 因为 go 是一个很小的词,并且会匹配很多包,所以使用 golang 作为搜索词变得很普遍。 这也是在互联网上搜索 Go 相关文章时的常见做法。 术语 Golang 诞生于 Go 的域,即 golang.org


终端将输出您可以安装的列表:

Outputgolang  golang-migrate

Go 将成为列表中的项目之一。 继续安装它:

brew install golang

终端窗口将为您提供有关 Go 安装过程的反馈。 安装完成可能需要几分钟时间。

要检查您安装的 Go 版本,请键入以下内容:

go version

这将输出当前安装的 Go 的特定版本,默认情况下它将是可用的最新、稳定的 Go 版本。

以后要更新 Go,您可以运行以下命令先更新 Homebrew,然后再更新 Go。 您现在不必这样做,因为您刚刚安装了最新版本:

brew update
brew upgrade golang

brew update 将更新 Homebrew 本身的公式,确保您拥有要安装的软件包的最新信息。 brew upgrade golanggolang 包更新到包的最新版本。

确保您的 Go 版本是最新的是一种很好的做法。

在您的计算机上安装 Go 后,您现在可以为您的 Go 项目创建工作区。

第 5 步 — 创建您的 Go 工作区

现在您已经安装了 Xcode、Homebrew 和 Go,您可以继续创建您的编程工作区。

Go 工作区将在其根目录包含两个目录:

  • src:包含 Go 源文件的目录。 源文件是您使用 Go 编程语言编写的文件。 Go 编译器使用源文件来创建可执行的二进制文件。
  • bin:包含由 Go 工具构建和安装的可执行文件的目录。 可执行文件是在您的系统上运行并执行任务的二进制文件。 这些通常是由您的源代码或其他下载的 Go 源代码编译的程序。

src 子目录可能包含多个版本控制存储库(例如 GitMercurialBazaar)。 当您的程序导入第三方库时,您将看到类似 github.comgolang.org 的目录。 如果您使用像 github.com 这样的代码存储库,您还将把项目和源文件放在该目录下。 这允许在您的项目中规范地导入代码。 Canonical 导入是引用完全限定包的导入,例如 github.com/digitalocean/godo

以下是典型工作区的外观:

.
├── bin
│   ├── buffalo                                      # command executable
│   ├── dlv                                          # command executable
│   └── packr                                        # command executable
└── src
    └── github.com
        └── digitalocean
            └── godo
                ├── .git                            # Git reposistory metadata
                ├── account.go                      # package source
                ├── account_test.go                 # test source
                ├── ...
                ├── timestamp.go
                ├── timestamp_test.go
                └── util
                    ├── droplet.go
                    └── droplet_test.go

从 1.8 开始,Go 工作区的默认目录是用户的主目录,其中包含 go 子目录或 $HOME/go。 如果您使用的是早于 1.8 的 Go 版本,则认为最佳做法仍然为您的工作区使用 $HOME/go 位置。

发出以下命令为 Go 工作区创建目录结构:

mkdir -p $HOME/go/{bin,src}

-p 选项告诉 mkdir 在目录中创建所有 parents,即使它们当前不存在。 使用 {bin,src}mkdir 创建一组参数,并告诉它创建 bin 目录和 src 目录。

这将确保以下目录结构现在到位:

└── $HOME
    └── go
        ├── bin
        └── src

在 Go 1.8 之前,需要设置一个名为 $GOPATH 的本地环境变量。 虽然不再明确要求这样做,但它仍然被认为是一种很好的做法,因为许多第三方工具仍然依赖于设置的这个变量。

您可以通过将 $GOPATH 添加到 ~/.bash_profile 来设置它。

首先,使用 nano 或您喜欢的文本编辑器打开 ~/.bash_profile

nano ~/.bash_profile

通过将以下内容添加到文件中来设置您的 $GOPATH

~/.bash_profile

export GOPATH=$HOME/go

Go 编译安装工具时,会将它们放在 $GOPATH/bin 目录下。 为方便起见,通常将工作区的 /bin 子目录添加到 ~/.bash_profile 中的 PATH

~/.bash_profile

export PATH=$PATH:$GOPATH/bin

现在,您的 ~/.bash_profile 中应该有以下条目:

~/.bash_profile

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

现在,这将允许您在系统上的任何位置运行通过 Go 工具编译或下载的任何程序。

要更新您的 shell,请发出以下命令以加载您刚刚创建的全局变量:

. ~/.bash_profile

您可以通过使用 echo 命令并检查输出来验证您的 $PATH 是否已更新:

echo $PATH

您应该会看到您的 $GOPATH/bin 将显示在您的主目录中。 如果您以 sammy 身份登录,您将在路径中看到 /Users/sammy/go/bin

Output/Users/sammy/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

现在您已经创建了工作空间的根目录并设置了 $GOPATH 环境变量,您将创建具有以下目录结构的未来项目。 此示例假设您使用 github.com 作为您的存储库:

$GOPATH/src/github.com/username/project

如果你在 https://github.com/digitalocean/godo 项目上工作,你可以把它放在以下目录中:

$GOPATH/src/github.com/digitalocean/godo

以这种方式构建项目将使项目可以使用 go get 工具。 它也将有助于以后的可读性。

您可以通过使用 go get 命令获取 godo 库来验证这一点:

go get github.com/digitalocean/godo

通过列出目录我们可以看到它成功下载了godo包:

ls -l $GOPATH/src/github.com/digitalocean/godo

您将收到与此类似的输出:

Output-rw-r--r--  1 sammy  staff   2892 Apr  5 15:56 CHANGELOG.md
-rw-r--r--  1 sammy  staff   1851 Apr  5 15:56 CONTRIBUTING.md
.
.
.
-rw-r--r--  1 sammy  staff   4893 Apr  5 15:56 vpcs.go
-rw-r--r--  1 sammy  staff   4091 Apr  5 15:56 vpcs_test.go

在此步骤中,您创建了一个 Go 工作区并配置了必要的环境变量。 在下一步中,您将使用一些代码测试工作区。

第 6 步 — 创建一个简单的程序

现在您已经设置好了 Go 工作区,是时候创建一个简单的“Hello, World!”了。 程序。 这将确保您的工作区正常工作,并让您有机会更加熟悉 Go。

因为您正在创建单个 Go 源文件,而不是实际项目,所以您不需要在工作区中执行此操作。

在您的主目录中,打开一个命令行文本编辑器,例如 nano,然后创建一个新文件:

nano hello.go

在终端中打开文本文件后,输入您的程序:

package main

import "fmt"

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

通过键入 controlx 键退出 nano,当提示保存文件时按 y

此代码将使用 fmt 包并以 Hello, World! 作为参数调用 Println 函数。 当程序运行时,这将导致短语 Hello, World! 打印到终端。

一旦你退出 nano 并返回你的 shell,运行程序:

go run hello.go

您刚刚创建的 hello.go 程序将导致终端产生以下输出:

OutputHello, World!

在此步骤中,您使用了一个基本程序来验证您的 Go 工作区是否已正确配置。

结论

恭喜! 至此,您在本地 macOS 机器上设置了 Go 编程工作区,可以开始编码项目了!