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

Go是一种编程语言,专为快速编译,编程简易和生产中的高效执行而设计。本教程将指导您通过macOS上的命令行使用Go安装和配置编程工作区。

介绍

Go是一种编程语言,源于Google的挫败感。 开发人员不得不选择一种有效执行的语言,但需要很长时间才能编译,或选择一种易于编程但在生产中运行效率低下的语言。 Go旨在同时提供所有三种:快速编译,易于编程以及在生产中高效执行。

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

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

先决条件

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

第1步 - 打开终端

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

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

macOS终端

还有许多终端命令需要学习,可以让你做更强大的事情。 文章“ Linux终端简介 ”可以让您更好地使用类似于macOS终端的Linux终端。

现在您已经打开了Terminal,您可以下载并安装Xcode ,这是一个开发人员工具包,您需要这些工具才能安装Go。

第2步 - 安装Xcode

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

xcode-select -p

以下输出表示安装了Xcode:

/Library/Developer/CommandLineTools

如果收到错误,则在Web浏览器中从App Store安装Xcode并接受默认选项。

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

xcode-select --install

此时,Xcode及其Command Line Tools应用程序已完全安装,我们已准备好安装软件包管理器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环境变量的顶部。 这将确保将通过macOS可能自动选择的工具调用Homebrew安装,这些工具可能与我们正在创建的开发环境背道而驰。

您应该使用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

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

Your system is ready to brew.

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

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

第4步 - 安装Go

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

brew search golang

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

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

golang  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 golang会将golang包更新到最新版本的包中。

优良作法是确保您的Go版本是最新的。

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

第5步 - 创建Go工作区

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

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

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

src子目录可能包含多个版本控制存储库(例如GitMercurialBazaar )。 当程序导入第三方库时,您将看到github.comgithub.com目录。 如果您使用的是像github.com这样的代码存储库,那么您还可以将项目和源文件放在该目录下。 这允许在项目中规范导入代码。 规范导入是引用完全限定的包的导入,例如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

/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

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

-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! 作为论点。 这将导致短语Hello, World! 在程序运行时打印到终端。

退出nano并返回shell后,运行程序:

go run hello.go

您刚刚创建的hello.go程序将导致Terminal生成以下输出:

Hello, World!

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

结论

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