GoをインストールしてWindows10にローカルプログラミング環境をセットアップする方法

提供:Dev Guides
移動先:案内検索

序章

Go は、Googleの欲求不満から生まれたプログラミング言語です。 開発者は、効率的に実行されるがコンパイルに長い時間がかかる言語を選択するか、プログラミングが容易であるが本番環境で非効率的に実行される言語を選択する必要がありました。 Goは、高速コンパイル、プログラミングの容易さ、本番環境での効率的な実行という3つすべてを同時に利用できるように設計されています。

Goは、さまざまなプログラミングプロジェクトに使用できる汎用性の高いプログラミング言語ですが、ネットワーキング/分散システムプログラムに特に適しており、「クラウドの言語」としての評判を得ています。 これは、現代のプログラマーが強力なツールセットを使用してより多くのことを行えるようにすること、フォーマットを言語仕様の一部にすることでフォーマットに関する議論を排除すること、および単一のバイナリにコンパイルすることで展開を容易にすることに焦点を当てています。 Goは非常に少数のキーワードで簡単に習得できるため、初心者にも経験豊富な開発者にも最適です。

このチュートリアルでは、ローカルのWindows 10マシンにGoをインストールし、コマンドラインからプログラミング環境をセットアップする方法について説明します。

前提条件

インターネットに接続された管理アクセス機能を備えたWindows10マシンが必要になります。

手順1—PowerShellを開いて構成する

インストールとセットアップのほとんどは、コンピューターと対話するための非グラフィカルな方法であるコマンドラインインターフェイスで完了します。 つまり、ボタンをクリックする代わりに、テキストを入力し、テキストを介してコンピューターからフィードバックを受け取ることになります。 shell とも呼ばれるコマンドラインは、コンピューターで毎日実行するタスクの多くを変更および自動化するのに役立ち、ソフトウェア開発者にとって不可欠なツールです。

PowerShell は、コマンドラインシェルインターフェイスを提供するMicrosoftのプログラムです。 管理タスクは、コマンドレット、発音コマンドレットを実行することによって実行されます。これは、操作を実行できる.NETソフトウェアフレームワークの特殊なクラスです。 2016年8月にオープンソース化されたPowerShellは、WindowsシステムとUNIXシステム(MacとLinuxを含む)の両方で、プラットフォーム間で利用できるようになりました。

Windows PowerShellを見つけるには、画面の左下隅にあるStartメニューアイコンを右クリックします。 メニューが表示されたら、検索をクリックし、検索バーにPowerShellと入力します。 オプションが表示されたら、デスクトップアプリから WindowsPowerShellを右クリックします。 このチュートリアルでは、管理者として実行を選択します。 このアプリにPCへの変更を許可しますか?を尋ねるダイアログボックスが表示されたら、はいをクリックします。

これを行うと、次のような単語の文字列を持つテキストベースのインターフェイスが表示されます。

次のコマンドを入力して、システムフォルダから切り替えます。

cd ~

次に、PS C:\Users\sammyなどのホームディレクトリに移動します。

インストールプロセスを続行するには、最初にPowerShellを使用してアクセス許可を設定する必要があります。 デフォルトで最も安全なモードで実行するように構成されており、管理者として設定できるいくつかのレベルの権限があります。

  • Restrictedがデフォルトの実行ポリシーです。 このモードでは、スクリプトを実行できなくなり、PowerShellは対話型シェルとしてのみ機能します。
  • AllSigned を使用すると、信頼できる発行元によって署名されたすべてのスクリプトと構成ファイルを実行できます。つまり、信頼できる発行元によって署名された悪意のあるスクリプトを実行するリスクにさらされる可能性があります。 。
  • RemoteSigned を使用すると、信頼できる発行元によって署名されたインターネットからダウンロードしたスクリプトと構成ファイルを実行できます。これらの信頼できるスクリプトが実際に悪意のある場合は、マシンが脆弱性にさらされます。
  • Unrestricted は、ファイルがインターネットからダウンロードされたことを理解するとすぐに、インターネットからダウンロードされたすべてのスクリプトと構成ファイルを実行します。 この場合、デジタル署名は必要ないため、インターネットからダウンロードされた署名されていない、潜在的に悪意のあるスクリプトを実行するリスクにさらされる可能性があります。

このチュートリアルでは、RemoteSigned実行ポリシーを使用して、現在のユーザーの権限を設定します。 これにより、PowerShellは、Unrestricted権限の場合と同じように権限を広くすることなく、信頼できるスクリプトを受け入れることができます。 PowerShellに次のように入力します。

Set-ExecutionPolicy -Scope CurrentUser

次に、PowerShellは実行ポリシーを提供するように求めます。 RemoteSignedを使用するには、次のように入力します。

RemoteSigned

ENTERを押すと、実行ポリシーの変更を確認するように求められます。 文字yを入力して、変更を有効にします。 これが機能したことを確認するには、マシン全体で現在のアクセス許可を要求します。

Get-ExecutionPolicy -List

次のような出力を受け取るはずです。

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

これにより、現在のユーザーがインターネットからダウンロードした信頼できるスクリプトを実行できることが確認されます。 これで、Goプログラミング環境をセットアップするために必要なファイルのダウンロードに進むことができます。

ステップ2— PackageManagerChocolateyのインストール

パッケージマネージャーは、インストールプロセスを自動化するために機能するソフトウェアツールのコレクションです。 これには、ソフトウェアの初期インストール、アップグレードと構成、および必要に応じたソフトウェアの削除が含まれます。 ソフトウェアのインストールを中央の場所に保持し、システム上のすべてのソフトウェアパッケージを一般的に使用される形式で維持できます。

Chocolatey は、Linuxでapt-getと同じように機能する、Windows用に構築されたコマンドラインパッケージマネージャーです。 オープンソースバージョンで利用可能なChocolateyは、アプリケーションとツールをすばやくインストールするのに役立ちます。 これを使用して、開発環境に必要なものをダウンロードします。

スクリプトをインストールする前に、スクリプトを読んで、マシンに加えられる変更に満足していることを確認してください。 これを行うには、.NETスクリプトフレームワークを使用して、ターミナルウィンドウ内にChocolateyスクリプトをダウンロードして表示します。

InternetExplorerとインターネット接続設定を共有する$scriptというWebClientオブジェクトを作成することから始めます。

$script = New-Object Net.WebClient

[X53X]を含む$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

コマンドレットiwrまたはInvoke-WebRequestを使用すると、Webからデータを抽出できます。 これにより、スクリプトがiexまたはInvoke-Expressionコマンドレットに渡され、スクリプトの内容が実行され、Chocolateyパッケージマネージャーのインストールが実行されます。

PowerShellにChocolateyのインストールを許可します。 完全にインストールされたら、chocoコマンドを使用して追加のツールのインストールを開始できます。

将来いつでもChocolateyをアップグレードする必要がある場合は、次のコマンドを実行します。

choco upgrade chocolatey

パッケージマネージャーをインストールすると、Goプログラミング環境に必要な残りの部分をインストールできます。

ステップ3—テキストエディタNanoのインストール(オプション)

このステップでは、コマンドラインインターフェイスを使用するテキストエディタであるnanoをインストールします。 nanoを使用して、PowerShell内で直接プログラムを作成できます。 メモ帳などのグラフィカルユーザーインターフェイスでテキストエディタを使用することもできるため、これは必須の手順ではありません。 このチュートリアルでは、PowerShellの使用に慣れるために、nanoの使用をお勧めします。

Chocolateyを使用してnanoをインストールします。

choco install -y nano

-yフラグは、確認を求められることなく、スクリプトを実行することを自動的に確認します。

nanoをインストールしたら、nanoコマンドを使用して新しいテキストファイルを作成できます。 このチュートリアルの後半で、最初のGoプログラムを作成するために使用します。

ステップ4—Goのインストール

前の手順でnanoを使用した場合と同様に、Chocolateyを使用してGoをインストールします。

choco install -y golang

注: go は非常に小さな単語であるため、パッケージのインストールやインターネットでGo関連の記事を検索するときにgolangを使用することが一般的になっています。 。 Golang という用語は、Goのドメインであるgolang.orgから生まれました。


PowerShellはGoをインストールし、そのプロセス中にPowerShell内に出力を生成します。 インストールが完了すると、次の出力が表示されます。

OutputEnvironment 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

次のような出力が表示されます。

Outputgo version go1.12.1 windows/amd643.7.0

Goをインストールすると、開発プロジェクト用のワークスペースを設定できます。

ステップ5—Goワークスペースを作成する

Chocolatey、nano、Goがインストールされたので、プログラミングワークスペースを作成できます。

Goワークスペースには、ルートに2つのディレクトリが含まれます。

  • 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 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を持つユーザーのホームディレクトリです。 1.8より前のバージョンのGoを使用している場合でも、ワークスペースに$HOME/goの場所を使用することがベストプラクティスと見なされます。

次のコマンドを発行して、$HOMEディレクトリに移動します。

cd $HOME

次に、Goワークスペースのディレクトリ構造を作成します。

mkdir go/bin, go/src

これにより、次のディレクトリ構造が確実に配置されます。

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

Go 1.8より前は、$GOPATHというローカル環境変数を設定する必要がありました。 明示的にそうする必要はなくなりましたが、多くのサードパーティツールが設定されているこの変数に依存しているため、それでも良い習慣と見なされます。

インストールにChocolateyを使用したため、この環境変数はすでに設定されているはずです。 これは、次のコマンドで確認できます。

$env:GOPATH

sammyの代わりにユーザー名を使用して、次の出力が表示されます。

OutputC:\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

次のような出力が表示されます。

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ワークスペースを作成し、必要な環境変数を構成しました。 次のステップでは、いくつかのコードを使用してワークスペースをテストします。

ステップ6—簡単なプログラムを作成する

Goワークスペースが設定されたので、単純な「Hello、World!」を作成します。 プログラム。 これにより、ワークスペースが適切に構成されていることを確認し、Goに慣れることができます。 実際のプロジェクトではなく、単一のGoソースファイルを作成しているため、これを行うためにワークスペースにいる必要はありません。

ホームディレクトリから、nanoなどのコマンドラインテキストエディタを開き、新しいファイルを作成します。

nano hello.go

テキストファイルがnanoで開いたら、プログラムを入力します。

hello.go

package main

import "fmt"

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

CTRLおよびXキーを押して、nanoを終了します。 ファイルを保存するように求められたら、Yを押してから、ENTERを押します。

このコードは、fmtパッケージを使用し、Hello, World!を引数としてPrintln関数を呼び出します。 これにより、プログラムの実行時にHello, World!というフレーズが端末に出力されます。

nanoを終了してシェルに戻ったら、プログラムを実行します。

go run hello.go

作成したhello.goプログラムにより、PowerShellは次の出力を生成します。

OutputHello, World!

このステップでは、基本的なプログラムを使用して、Goワークスペースが適切に構成されていることを確認しました。

結論

おめでとう! この時点で、ローカルWindowsマシンにGoプログラミングワークスペースがセットアップされ、コーディングプロジェクトを開始できます。