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

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

介绍

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

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

本教程将指导您在本地Windows 10计算机上安装Go并通过命令行设置编程环境。

先决条件

您将需要一台具有管理访问权限的Windows 10计算机,该计算机已连接到Internet。

第1步 - 打开并配置PowerShell

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

PowerShell是Microsoft的一个程序,它提供命令行shell接口。 管理任务是通过运行cmdlet来执行的,发送命令command-lets ,它们是可以执行操作的.NET软件框架的专用类。 PowerShell于2016年8月开源,现在可用于Windows和UNIX系统(包括Mac和Linux)的跨平台。

要查找Windows PowerShell,可以右键单击屏幕左下角的“ 开始”菜单图标。 弹出菜单后,单击“ 搜索” ,然后在搜索栏中键入PowerShell 当您看到选项时,右键单击桌面应用程序中的Windows PowerShell 出于本教程的目的,请选择以管理员身份运行 当系统提示您有一个对话框询问您是否要允许此应用程序更改您的PC? 点击

执行此操作后,您将看到一个基于文本的界面,其中包含一串如下所示的单词:

Windows 10 PowerShell

键入以下命令切换出系统文件夹:

cd ~

然后,您将进入PS C:\Users\ sammy等主目录。

要继续安装过程,必须首先通过PowerShell设置权限。 默认情况下,配置为以最安全的模式运行,您可以设置为管理员的几个级别的权限:

  • 受限制是默认执行策略。 在此模式下,您将无法运行脚本,而PowerShell仅可用作交互式shell。
  • AllSigned将使您能够运行由受信任的发布者签名的所有脚本和配置文件,这意味着您可能会打开您的计算机,冒着运行恰好由受信任的发布者签名的恶意脚本的风险。
  • RemoteSigned将允许您运行从受信任的发布者签名的Internet下载的脚本和配置文件,如果这些受信任的脚本实际上是恶意的,则再次将您的计算机打开到漏洞。
  • 一旦您确认您了解该文件是从Internet下载的, Unrestricted将运行从Internet下载的所有脚本和配置文件。 在这种情况下,不需要数字签名,因此您可能会打开机器,冒着运行从Internet下载的未签名和潜在恶意脚本的风险。

在本教程中,您将使用RemoteSigned执行策略来设置当前用户的权限。 这将允许PowerShell接受受信任的脚本,而不会像使用Unrestricted权限那样使用广泛的权限。 在PowerShell中输入以下内容:

Set-ExecutionPolicy -Scope CurrentUser

然后,PowerShell将提示您提供执行策略。 输入以下内容以使用RemoteSigned

RemoteSigned

ENTER ,系统会要求您确认对执行策略的更改。 键入字母y以允许更改生效。 您可以通过询问整个计算机的当前权限来确认这是否有效:

Get-ExecutionPolicy -List

您应该收到如下所示的输出:

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine       Undefined

这确认了当前用户可以运行从互联网下载的可信脚本。 您现在可以继续下载我们设置Go编程环境所需的文件。

第2步 - 安装包管理器Chocolatey

包管理器是一组软件工具,用于自动化安装过程。 这包括软件的初始安装,升级和配置,以及根据需要删除软件。 它们将软件安装保存在中央位置,并且可以以常用格式维护系统上的所有软件包。

Chocolatey是一个为Windows构建的命令行包管理器,其工作方式类似于Linux上的apt-get Chocolatey提供开源版本,可帮助您快速安装应用程序和工具。 您将使用它来下载开发环境所需的内容。

在安装脚本之前,请阅读它以确认您对它将对您的计算机所做的更改感到满意。 为此,请使用.NET脚本框架在终端窗口中下载并显示Chocolatey脚本。

首先创建一个名为$script的WebClient对象,该对象与Internet Explorer共享Internet连接设置:

$script = New-Object Net.WebClient

通过使用|管道$script对象来查看可用选项 Get-Member类:

$script | Get-Member

这将返回此WebClient对象的所有成员(属性和方法):

 . . .
DownloadFileAsync         Method     void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur...
DownloadFileTaskAsync     Method     System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa...
DownloadString            Method     string DownloadString(string address), string DownloadString(uri address) #method we will use
DownloadStringAsync       Method     void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy...
DownloadStringTaskAsync   Method     System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy…
 . . .

查看输出,您可以识别用于在PowerShell窗口中显示脚本和签名的DownloadString方法。 使用此方法检查脚本:

$script.DownloadString("https://chocolatey.org/install.ps1")

检查脚本后,通过在PowerShell中键入以下内容来安装Chocolatey:

iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

cmdlet iwrInvoke-WebRequest允许您从Web中提取数据。 这会将脚本传递给iexInvoke-Expression cmdlet,它将执行脚本的内容并运行Chocolatey包管理器的安装。

允许PowerShell安装Chocolatey。 完全安装后,您可以使用choco命令开始安装其他工具。

如果您以后需要随时升级Chocolatey,请运行以下命令:

choco upgrade chocolatey

安装包管理器后,您可以安装Go编程环境所需的其余部分。

第3步 - 安装文本编辑器Nano(可选)

在此步骤中,您将安装nano ,一个使用命令行界面的文本编辑器。 您可以使用nano直接在PowerShell中编写程序。 这不是必修步骤,因为您还可以使用带有图形用户界面(如记事本)的文本编辑器。 本教程建议使用nano,因为它有助于您使用PowerShell。

使用Chocolatey安装nano:

choco install -y nano

-y标志自动确认您要运行脚本而不提示确认。

安装nano后,您可以使用nano命令创建新的文本文件。 您将在本教程后面使用它来编写您的第一个Go程序。

第4步 - 安装Go

就像你在上一步中使用nano一样,你将使用Chocolatey来安装Go:

choco install -y golang

注意:因为go是一个很小的词,所以使用golang作为安装包的术语以及在互联网上搜索与Go相关的文章已经很常见了。 Golang这个术语来自Go的域名,即golang.org

PowerShell现在将安装Go,在此过程中在PowerShell中生成输出。 安装完成后,您应该看到以下输出:

Environment Vars (like PATH) have changed. Close/reopen your shell to
see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of golang was successful.
 Software installed as 'msi', install location is likely default.

Chocolatey installed 1/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

安装完成后,您现在将确认已安装Go。 要查看更改,请以管理员身份关闭并重新打开PowerShell,然后检查本地计算机上可用的Go版本:

go version

您将收到类似于以下内容的输出:

go version go1.12.1 windows/amd643.7.0

安装Go后,您可以为开发项目设置工作区。

第5步 - 创建Go工作区

现在您已经安装了Chocolatey,nano和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 repository 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 如果您使用的是Go的早期版本而不是1.8,那么对于您的工作区使用$HOME/go位置仍然是最佳做法

发出以下命令以导航到$HOME目录:

cd $HOME

接下来,为Go工作区创建目录结构:

mkdir go/bin, go/src

这将确保现在具有以下目录结构:

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

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

由于您使用Chocolatey进行安装,因此应该已经设置了此环境变量。 您可以使用以下命令对此进行验证:

$env:GOPATH

您应该看到以下输出,用您的用户名代替sammy

C:\Users\sammy\go

当Go编译并安装工具时,它会将它们放在$GOPATH/bin目录中。 为方便起见,将工作空间的bin子目录添加到$PATH是很常见的。 您可以使用PowerShell中的setx命令执行此操作:

setx PATH "$($env:path);$GOPATH\bin"

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

现在您已创建工作空间的根并设置了$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

注意:如果您没有安装git ,Windows将打开一个对话框,询问您是否要安装它。 单击继续并按照安装说明进行操作。

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

ls $env:GOPATH/src/github.com/digitalocean/godo

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

    Directory: C:\Users\sammy\go\src\github.com\digitalocean\godo


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        4/10/2019   2:59 PM                util
-a----        4/10/2019   2:59 PM              9 .gitignore
-a----        4/10/2019   2:59 PM             69 .travis.yml
-a----        4/10/2019   2:59 PM           1592 account.go
-a----        4/10/2019   2:59 PM           1679 account_test.go
-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
.
.
.
-a----        4/10/2019   2:59 PM           5076 vpcs.go
-a----        4/10/2019   2:59 PM           4309 vpcs_test.go

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

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

现在您已经设置了Go工作区,创建一个简单的“Hello,World!”程序。 这将确保您的工作区配置正确,并使您有机会更熟悉Go。 因为您要创建单个Go源文件而不是实际项目,所以您无需在工作区中执行此操作。

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

nano hello.go

文本文件以nano打开后,输入您的程序:

hello.go
package main

import "fmt"

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

CTRLX键退出nano 提示保存文件时,按Y然后按ENTER

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

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

go run hello.go

您刚刚创建的hello.go程序应该使PowerShell生成以下输出:

Hello, World!

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

结论

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


分享按钮