Windows 系統的 Gopher 們久等了!!

今天我們將介紹《如何在 Windows 10 上安裝 Go 和設置本地編程環境》,以供不同系統使用者選擇學習。

話不多說,我們開始 :

如何在 Windows 10 上安裝 Go 和設置本地編程環境

Go 語言簡介

Go 是一門在 Google 備受挫折後而誕生的語言。開發者不得不頻繁地在兩門語言中選擇,要麼選擇一門執行效率高但是編譯時間長的語言,要麼選擇一種易於編程但在生產中運行效率低下的語言。Go 被設計爲同時提供所有這三個功能:快速編譯、易於編程和生產中的高效執行。

雖然 Go 是一門通用的編程語言,可用於許多不同類型的編程項目。但它特別適合網絡 / 分佈式系統項目,贏得了 “雲語言” 的美譽。Go  語言專注於通過一組強大的工具來幫助現代程序員完成更多的工作,通過使格式成爲語言規範的一部分來消除對格式的爭論,以及通過編譯爲單個二進制文件來簡化部署。Go 易於學習,關鍵字非常少,這使其成爲不論是初學者還是經驗豐富的開發人員的不二之選。

本教程將指導你通過命令行來安裝 Go 和配置 Go 編程環境。本教程特別針對 Ubuntu 18.04 的安裝過程,但是對於其他 Debian Linux 發行版也同樣適用。

安裝前提

你需要一臺擁有管理員權限並且能夠連接上網的  Windows 10 的電腦。

第一步:打開並配置 PowerShell

我們將會在終端上完成我們大部分的安裝和設置,這是一種與計算機交互的非圖形化方式。也就是說,你輸入的是文本,然後也是通過文本得到計算機的反饋,而不是點擊按鈕。命令行,也就是我們熟知的 shell 或者 終端 ,可以幫助你修改或自動化很多你每天執行在計算機上的任務,這是軟件開發人員必備的工具。

PowerShell 是微軟提供的一個命令行 shell 界面的程序。通過 cmdlets (發音爲 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 設置權限。默認情況下以最安全的模式運行,作爲管理員你可以設置以下幾個級別的權限:

在本教程中,你將使用 RemoteSigned 執行策略來設置當前用戶的權限。這將允許 PowerShell 接受受信任的腳本,而不會使權限像 Unrestricted 權限那樣廣泛。在 PowerShell 中輸入以下內容:

Set-ExecutionPolicy -Scope CurrentUser

然後 PowerShell 將提示你爲你提供一個可執行策略。輸入以下內容來使用RemoteSigned 策略:

RemoteSigned

一旦你按了回車鍵,系統會要求你確認對執行政策的更改。輸入字母 y 以使更改生效。你可以通過詢問機器上的當前權限來確認這是否生效:

Get-ExecutionPolicy -List

你應該會收到如下所示的輸出:

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

這表明當前用戶可以運行從 Internet 下載的受信任腳本。你現在可以繼續下載設置 Go 編程環境所需的文件。

第二步:安裝包管理器 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 對象的所有成員(屬性和方法):

 . . .
[secondary_label Snippet of Output]
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 編程環境所需的其餘部分。

第三步:裝文本編輯器 Nano (可選)

在這一步中,你將安裝 nano,這是一個使用命令行界面的文本編輯器。你可以使用 nano 直接在 PowerShell 中編寫程序。這不是強制性步驟,因爲你也可以使用帶有圖形用戶界面的文本編輯器,例如 Notepad 。本教程推薦使用 nano,因爲它將幫助你習慣使用 PowerShell。

使用 Chocolatey 安裝 nano:

choco install -y nano

-y 標誌會自動確認你要運行腳本,而不會提示你確認。

安裝 nano 後,你可以使用 nano 命令創建新的文本文件。你將在本教程後面使用它來編寫你的第一個 Go 程序。

第四步:安裝 Go

就像你在上一步中安裝 nano 一樣,你將使用 Chocolatey 安裝 Go:

choco install -y golang

注意: 因爲 go 是一個很小的詞,所以使用 golang 作爲安裝包的術語, 這也是在互聯網上搜索 Go 相關文章時的常見做法。Golang  一詞源於 Go 的域,即 golang.org

PowerShell 安裝 Go 的過程中,會在 PowerShell 中生成輸出內容。安裝完成後,你應該會看到以下輸出:

Output
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

你將得到類似以下內容的輸出:

output
go version go1.12.1 windows/amd643.7.0

安裝 Go 後,你可以爲開發項目設置工作區。

第五步:創建你的 Go 工作區

現在你已經安裝了 Chocolatey、nano 和 Go,可以接着創建你的編程工作區。

Go 語言的工作區在其根目錄下包含兩個目錄:

src 子目錄可能包含多個版本控制倉庫(例如 Git, MercurialBazaar)。當你引入第三方庫的時候,你可以看到類似  github.com, golang.org 或其他目錄,如果你使用的是 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 工作區的默認目錄是用戶的 home 目錄,並帶有 go 子目錄,或者是 $HOME/go 目錄。如果你使用的是早於 1.8 的 Go 版本,目前認爲最佳做法是爲你的工作區使用 $HOME/go 位置。

使用下面命令導航到 $HOME 目錄:

cd $HOME

接下來,爲你的 Go 工作區創建目錄結構:

mkdir go/bin, go/src

以上命令將確保下面的目錄結構各就各位:

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

在 Go 1.8 之前,需要設置一個名爲 $GOPATH 的本地環境變量。$GOPATH 告訴編譯器在哪裏可以找到導入的第三方源代碼,同樣包括任何你寫的本地源代碼。雖然不再明確要求它,但它仍然被認爲是一種很好的做法,因爲許多第三方工具仍然依賴於設置的這個變量。

由於你使用 Chocolatey 進行安裝,因此應該已經設置了此環境變量。你可以使用以下命令驗證這一點:

$env:GOPATH

你應該會看到以下輸出,其中  sammy 代替了你的用戶名:

output
C:\Users\sammy\go

當 Go 編譯和安裝工具時,會將他們放在  $GOPATH/bin  目錄。爲方便起見,通常將工作區的 /bin 子目錄添加到 ~/.profile 中的 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 會打開一個對話框詢問你是否要安裝它。單擊 Yes 繼續並按照安裝說明進行操作。

你可以通過列出目錄來檢查下看看是否成功下載了 godo包:

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

你應該看到類似下面這樣的輸出:

output    
    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 工作區並且配置了必要的環境變量。下一步你將使用一些代碼來測試下工作區。

第六步:創建一個簡單的程序

現在你已經設置了工作區,來創建一個  “Hello, World!” 程序吧。這可以檢驗工作區配置是否正確,並且給你一個更加熟悉 Go 的機會。因爲我們創建的是單個 Go 源文件,而不是實際項目,所以我們不需要在工作區中執行此操作。

在你的 home 目錄,打開一個命令行文本編輯器,例如 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! 在程序運行時打印到終端上。

退出 nano 返回 shell 之後,運行程序:

go run hello.go

你剛剛創建的 hello.go 程序應該會在 PowerShell 產生以下輸出:

output
Hello, World!

在此步驟中,你使用了一個簡單小程序來驗證是否正確配置了 Go 工作區。

總結

恭喜!至此,你已經在 Ubuntu 機器上設置了 Go 編程工作區,可以開始寫項目了!

相關鏈接:

Go : https://golang.org/

PowerShell : https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/powershell

.NET : https://dotnet.microsoft.com/

Chocolatey : https://chocolatey.org/

Git : https://git-scm.com/

Mercurial : https://www.mercurial-scm.org/

Bazaar : http://bazaar.canonical.com/

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/R82eASuhja-kEb_Qwe7p3Q