[Windows]Go言語をインストールしようぜ!

 

 

こんにちは。ナガオカ(@boot_kt)です。

 


この記事はWindowsを対象に書いていますが、考え方はmacもLinuxも同じです
環境変数の設定手順が違うだけです

ですので、macやLinuxでGo言語を使おうと考えている方にもお役に立てるでしょう!!

 

この記事のザックリした内容
◆対象読者

  • Windows 7ユーザー(8や10でもmacでもLinuxでも似たようなもん)
  • Go言語を始めてみたいので、まずは開発環境を作りたい
  • GOPATHを知りたい
  • 『環境変数』自体の知識は必要

 

 

 

 

 

 

パターン1:公式サイトのインストーラーを使ってのインストール

インストールの方法は二通りあるのでお好きな方でどうぞ

 

どっちでやっても同じだけど、パターン2のChocolateyの方がバージョンが少し古いことが多いみたいなので、それが気になる人はパターン1の公式サイトのインストーラーを使ってね

 

ダウンロード

Go言語の公式サイトからダウンロードしましょう

この図で言えば、go1.10.3.windows-amd64.msiをクリック

go言語 golang

 

こんなのがダウンロードされます

go言語 golang

 

インストール

インストーラーを起動すればこんな感じでインストールされます
迷うようなところは無いでしょう

 

go言語 golang

 

go言語 golang

 

go言語 golang

 

go言語 golang

 

go言語 golang

 

go言語 golang

 

go言語 golang

 

go言語 golang

 

インストールできたかの確認

コマンドプロンプトで以下のコマンドを打てば何か表示されるので分かるでしょう

  • path
  • go env
  • go version
    C:\>go version
    go version go1.10.3 windows/amd64
    

 

環境変数PATHについて

C:\>path
PATH=(省略);%GOPATH%\bin

どこかに%GOROOT%\binがあるはずです
実際には『%GOROOT%』という文字じゃなくて、パスが書いています

『%GOROOT%』の部分は↓のgo envで分かります

 

C:\>go env
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\hoge\AppData\Local\go-build
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\hoge\go
set GORACE=
set GOROOT=C:\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\hoge\
AppData\Local\Temp\go-build347765206=/tmp/go-build -gno-record-gcc-switches

 

アンインストールするには?

[コントロールパネル]→[プログラムと機能]からアンインストールすればOKです

 

パターン2:Chocolateyを使ってのインストール

僕はChocolateyを使っているので、こっちの方法でインストールしました

 

Chocolateyとは?
ChocolateyはWindowsにおけるパッケージ管理ツールです
macで言うところのHomebrewみたいなもんです

 

 

Chocolateyのインストールはされているものとして進めます

 

ダウンロード

Chocolateyがインストールされているのであれば、ダウンロードするものは無いです

コマンドプロンプトでインストールコマンド叩くだけです

 

インストール

まずはChocolatey自体を更新しておこう

この後でChocolatey経由でGo言語をインストールするけど、Chocolatey自体のバージョンが古いと、インストールに失敗したような感じがする

なので、Chocolatey自体をバージョンアップしておきましょう

  1. 管理者モードでコマンドプロンプトを起動
  2. コマンドを打つ
    • アップデートコマンド
      > choco upgrade chocolatey

 

↓こんな感じになる

C:\>choco upgrade chocolatey
Chocolatey v0.10.8
Upgrading the following packages:
chocolatey
By upgrading you accept licenses for the packages.

You have chocolatey v0.10.8 installed. Version 0.10.11 is available based on you
r source(s).
Progress: Downloading chocolatey 0.10.11... 100%

chocolatey v0.10.11 [Approved]
chocolatey package files upgrade completed. Performing other installation steps.

The package chocolatey wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[N]o/[P]rint): y

Creating ChocolateyInstall as an environment variable (targeting 'Machine')
  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'
WARNING: It's very likely you will need to close and reopen your shell
  before you can use choco.
Restricting write permissions to Administrators
We are setting up the Chocolatey package repository.
The packages themselves go to 'C:\ProgramData\chocolatey\lib'
  (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).
A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'
  and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'
.

Creating Chocolatey folders if they do not already exist.

WARNING: You can safely ignore errors related to missing log files when
  upgrading from a version of Chocolatey less than 0.9.9.
  'Batch file could not be found' is also safe to ignore.
  'The system cannot find the file specified' - also safe.
WARNING: Not setting tab completion: Profile file does not exist at '\\Mac\Home\
Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.
Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
 first prior to using choco.
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The upgrade of chocolatey was successful.
  Software install location not explicitly set, could be in package or
  default install location if installer.

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

 

Chocolatey経由でGo言語をインストールしよう

  1. 管理者モードでコマンドプロンプトを起動
  2. コマンドを打つ

    ChocolateyのGo言語のパッケージサイト↓

     

    コマンドは書いておくけど、変更になってるといけないので、上記のパッケージサイトで確認してね

    • インストールコマンド
      > choco install golang
    • アップグレードコマンド
      ※これはアップデートしたい時に使いますので、この記事の中では使いません
      > choco upgrade golang

 

↓こんな感じになる
↓ちなみに、Go言語のコンパイラはC:\tools\goにインストールされるよ

C:\>choco install golang
Chocolatey v0.10.11
Installing the following packages:
golang
By installing you accept licenses for the packages.
Progress: Downloading golang 1.10.2... 100%

golang v1.10.2 [Approved]
golang package files install completed. Performing other installation steps.
The package golang wants to run 'chocolateyinstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[N]o/[P]rint): y

C:\tools
Downloading golang 64 bit
  from 'https://dl.google.com/go/go1.10.2.windows-amd64.zip'
Progress: 100% - Completed download of C:\Users\hoge\AppData\Local\Temp\chocolate
y\golang\1.10.2\go1.10.2.windows-amd64.zip (137.98 MB).
Download of go1.10.2.windows-amd64.zip (137.98 MB) completed.
Hashes match.
Extracting C:\Users\hoge\AppData\Local\Temp\chocolatey\golang\1.10.2\go1.10.2.win
dows-amd64.zip to C:\tools...
C:\tools
PATH environment variable does not have C:\tools\go\bin in it. Adding...
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 to 'C:\tools'

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

 

インストールできたかの確認

コマンドプロンプトで以下のコマンドを打てば何か表示されるので分かるでしょう

  • path
  • go env
  • go version
    C:\>go version
    go version go1.10.2 windows/amd64
    

 

C:\>path
PATH=(省略);%GOPATH%\bin

どこかに%GOROOT%\binがあるはずです
実際には『%GOROOT%』という文字じゃなくて、パスが書いています

『%GOROOT%』は↓のgo envで分かります

 

C:\>go env
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\kn\AppData\Local\go-build
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\kn\go
set GORACE=
set GOROOT=C:\tools\go
set GOTMPDIR=
set GOTOOLDIR=C:\tools\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\kn\
AppData\Local\Temp\go-build830782430=/tmp/go-build -gno-record-gcc-switches

 

 

広告




 

環境変数GOPATHについて

環境変数GOPATHは結構重要なので解説しておきます

GOPATHは以下の2つの役割を担います

  • ワーキングディレクトリ
    • srcフォルダに着目
    • ソースコードを置く場所
    • 逆に言えば、Go言語で書くソースコードはここにしか置いちゃダメ!
  • Go言語用ツールのインストール先となる
    • binフォルダに着目
    • goreとかgoimports等、go getしたものが入る場所
    • srcフォルダにもソースが入るよ

 

GOPATHってどこにするべきなの?

どこでもいいです!!!

 

 

初期値のままでもいいし、自分の好きな場所に変更してもいいっす

 

が、一度決めたら変更できないと思ってください

 

いや、後から変更できますよ

できますけど、環境変数書き換えたりディレクトリの中身を移動したりする必要があります

 

おそらくここを読んでる人だとその知識が薄い(←環境変数?ナニソレ?、とか、環境変数の書き換え?もっとナニソレ?みたいな感じ)と思うので、

一回決めたらもう書き換えないと思っといた方が良いでしょう

実際何度も変更するようなモンじゃないしね

 

現在のGo言語の環境変数を確認

コマンドプロンプトでgo envを実行すると、以下のようなのが羅列されるでしょう
人によって表示内容は微妙に違いますし、インストール方法によっても違うでしょう

 

↓これはChocolatery経由でインストールした時の場合です

C:\>go env
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\hoge\AppData\Local\go-build
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\hoge\go
set GORACE=
set GOROOT=C:\tools\go
set GOTMPDIR=
set GOTOOLDIR=C:\tools\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\hoge\
AppData\Local\Temp\go-build551860898=/tmp/go-build -gno-record-gcc-switches

 

注目するのはGOPATHだけでいいです

GOPATHにはデフォルトのディレクトリが設定されています

上記の場合だとC:\Users\hoge\go

このままでいいなら、そこ(C:\Users\hoge\go)の直下のsrcってフォルダにGo言語のプログラムを書いていきます

※srcフォルダがなければ自分で作ればいい

 

GOPATHを変更しよう!

GOPATHに設定されているディレクトリが気に入らなければ変更しましょう

 

僕はデフォルトのC:\Users\hoge\goは嫌で、

C:\home\dev\goにGo言語関係のものを入れたい

 

なので、GOPATHを変更します

 

環境変数GOPATHの設定方法

 

環境変数の変更は自己責任で!
環境変数の設定に間違うと、最悪の場合、OSが起動しなくなるかも知れません!
環境変数の操作は自己責任で対応してください!

 

  1. エクスプローラー起動
  2. マイコンピューターで右クリック
  3. プロパティ選択
  4. システムの詳細設定
  5. 「環境変数」ボタン
  6. ユーザー環境変数 or システム環境変数のどちらでもいいので、GOPATHを新規で追加
    ※既にGOPATHが存在してるなら編集で書き直せばいい
    変数名に、GOPATH
    変数値に、C:\home\dev\go

    変数値
    変数値はあなたが設定したいディレクトリにしてね
    ユーザー環境変数とシステム環境変数の違い
    ユーザー環境変数:今ログインしているユーザーだけに有効
    システム環境変数:全てのユーザーに有効
    お好きな方をお使いください。
  7. 開いているコマンドプロンプトを一旦閉じる
  8. コマンドプロンプトを開く
環境変数の変更は慎重に!
その他の環境変数を削除したり編集したりしないでください!
環境変数はOSにとってかなり重要なものですので、めちゃくちゃ要注意!!!!

 

GOPATHを設定したらどうなるのか?

上の方でも書きましたが、再度書いておきます

  • ワーキングディレクトリ
    • srcフォルダに着目
    • ソースコードを置く場所
    • 逆に言えば、Go言語で書くソースコードはここにしか置いちゃダメ!
  • Go言語用ツールのインストール先となる
    • binフォルダに着目
    • goreとかgoimports等、go getしたものが入る場所
    • srcフォルダにもソースが入るよ

 

GOPATHを変更したらそれで終わりと思うなよ!

さて、GOPATHを変更したら確認すべきものが、1個あるんだよ~ん!!

 

Go言語用ツールとかをgo getで取得したら、%GOPATH%\binに入るんだけど、、、、

 

コマンドプロンプトでその取得したツールのコマンドを打っても使えません!!!

 

例えば、

  1. go get github.com/motemen/goreを実行
  2. %GOPATH%bingore.exeがインストールされる
    ※srcにもgoreのソースがインストールされるけどそれは今は無視でいい

  3. コマンドプロンプトでgoreを実行
    ↓こんな感じのエラーが出る

    C:\>gore
    'gore' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    

 

これは環境変数のPATHに%GOPATH%\binが登録されてないから、OSがgore.exeを見つけられないのです

 

なので、こうならないためにも、環境変数PATHに%GOPATH%\binを登録してください!

 

環境変数PATHの設定方法

これ↓を見てね

[Win/Mac][超初心者向け]C言語の開発環境の初歩の初歩、シンプルな開発環境を作って使う
  →『3.PATHを設定する』

C:\MinGW\binのとこは%GOPATH%\binと読み替えてください

 

次はGit for Windowsのインストールだっ!

Go言語は結構GitHubから色々と取得しますので、Gitが使えるようにしておく必要があります。

既にGitHubを使えているならこの章は無視でいいです

Git for Windowsの公式サイトのインストール手順はコチラの記事を見てね
 ↓
>> [Windows]Git for Windowsのインストール手順

 

 

広告




 

goreをインストールしよう

GitHubから取得できるかどうかを確認してみよう

C:\>go get github.com/motemen/gore

成功すれば何のメッセージも出ずに終了するでしょう

↓こんな感じで「unrecognized import path」が出ると、失敗です
この場合はPATHに%GOPATH%\binが登録されていないか間違っているかです

C:\>go get github.com/motemen/gore
package golang.org/x/tools/go/ast/astutil: unrecognized import path "golang.org/
x/tools/go/ast/astutil" (https fetch: Get https://golang.org/x/tools/go/ast/astu
til?go-get=1: net/http: TLS handshake timeout)

 

%GOPATH%の中を確認してみよう

GOPATHに設定したディレクトリを見てみよう

srcとbinのフォルダができています

srcフォルダにはgoreのソースや関係するソースが入っています
binフォルダにはgore.exeが入ってます

 

goreってなに?

REPL(Read-Eval-Print Loop)と言うもので、対話型実行環境とかって呼ばれてますね

 

多分、『「読んで→評価(実行)して→表示して」を繰り返す』って意味かな?

 

Rubyで言うところのirbですな
Pythonにも似たようなのあるよね(コマンドプロンプトでpythonとかpython3って打てば使えるようになるアレ)

 

goreはGo言語版のREPL

Go言語公式のREPLじゃなく、motemenさんという方が作ってくださったもののようです

 

ファイルに保存しなくてもすぐに実行できるので結構便利

コマンドプロンプトでgoreと打てばREPLスタートするし、Ctrl+DでREPL終了

 

あとはGo言語のプログラムを書きまくれ!!!

これGo言語の開発環境ができました!

あとはGo言語のプログラムを書きまくってくれ!!

 

広告




 

さいごに、

結構前ですけど、Go言語の勉強会に参加させて頂きました

その時はGo言語は全くの初心者です

で、GOPATHは固定にしてねと言われました

GOPATHの役割はワーキングディレクトリを示すのかなと、その時は理解しました

まぁ、それ自体は間違っていないのですが、

 

いやいやいや、ワーキングディレクトリなんてその時々で変わるやん!!!
なんで固定やねん!!!
ワシはGOPATHをその都度変更したいんじゃいっ!!!

 

って感じでGo言語の学習を進めました

 

まぁ、入門書レベルではGOPATHがどうのこうのと影響することは無かったんですけど、depgo getを知ってからGOPATHに影響が出てくるようになりました

 

で、そこからGOPATHについて色々とググって、解説してくださっている記事を幾つか読ませて頂いたのですが、私のカンが悪くてどうにも理解できませんでした。

 

てなワケで、GOPATHを何度も変更したり動作をチェックしたりと色々と試行錯誤して、やっと理解できました

 

正解かどうかは分からないですけど、今の所これで問題は出てないのでええかなと思ってます(笑)

 

確か最初の勉強会でも説明してくれてはずなんですけど、やっと理解できたwwwwwwwww

 

 

RubyやPythonのように変数の型がなくてもいいんですけど、やっぱり型がある方が分かり易いしプログラミングし易いしバグも出難いのかなと思ってて、型のあるGo言語の方が取っ付きはいいなぁと感じています

 

この記事が、あなたのGo言語ライフへの第0歩になれば嬉しいです!!!!
※第1歩にもなってないwww

 

参考書籍

結構実践的な内容
1冊目にこの本だとキツいけど、2冊目以降におすすめ

 

 

 

何かしらのプログラム言語を知っているなら、これは超おすすめ!!!
余計な解説は無いし、手っ取り早くGo言語を知ることができる
それに価格も安いし、Kindleアンリミでも読めるし
僕はこれを1冊目に選びました

 

 


 

プログラミング のレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。