[Windows で Go] 動作環境を整備しよう

20150228-01-go-catch

(この記事は「WindowsでGo」の第2回です)

整備指針・開発環境

さて、Go でのプログラミング環境を整えるにあたって、指針を決めておこう。

まず開発環境だが、この一連の文書で想定するのは以下のとおり:

  • Windows
    • Windows 8.1 x64で動作確認。
      おそらくそれ以前・以降でも動く
    • CygWin/Mingw とかは(直接的には)使わない

なんか Windows でコーディングしてると石を投げられそうな風潮が最近あるが、 個人的に、

  • Apple製品を買ってはならないという一族の掟がある
  • 自分の若いころはX環境なんか一部のブルジョアのものだったんじゃあ!というねたみ

から、Windows にこだわる。異論は認めない。

また、ツール類のインストール時には、 できるだけ再現性の高い方法をとる ようにする。make && make install でいいと思っていた時代が、ぼくにもありま した…。人生の貴重な時間のムダなので、パッケージ化システムを有効活用する。 これだいじ。

あと、 Goスクリプトの拡張子は .go にしておくということで。拝領。

Go自体のインストール

ということで、さっそく Go をインストールしてみよう。ふつうは

から、適当な「msi」ファイルをダウンロード・実行する。が、2010年代のいま、 Windows でもパッケージマネージャを使わないことは許されない風潮があるので、

を使ってみよう。ちょっと毀誉褒貶あるけど、遅れてきたWindows用パッケージ マネージメントシステムだ。

手順は以下のとおり:

  1. Windows + R を押す
  2. 以下をコピペして実行(1行です)
    @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
  3. もいっかい Windows + R を押す
  4. 以下をコピペして実行
    cinst golang
    ※2015/02末時点では v1.4.2 がインストールされた

これだけ。実際に正常に動くかどうかも確認しておこう。

  1. コマンドプロンプトを起動
  2. 以下を実行
    > go
    ヘルプメッセージが表示されればGoが正常に導入されている
  3. 以下を実行
    > set | findstr "^GO.*="
    GOROOT=C:\tools\go
    などと出れば正常に環境変数が設定されている

ということであっという間に終わってしまった。 Windowsだからといって「マウス使わなくちゃいけなくて面倒~」 などということはないのだ!

参考までにこの手順でインストールされる環境の情報をまとめておこう:

  • go.exe のインストールパスは c:\tools\go\bin\go.exe
  • 上記実行ファイルへのPATHは自動的に追加されている
  • 環境変数 GOROOTC:\tools\go

Goスクリプトを直接起動できるようにする

UNIXだと、

  1. スクリプトファイルの1行目に「shebang」として
    #!/usr/bin/env perl
    などと書く
  2. スクリプトファイルに
    $ chmod +x script_file
    などとして実行属性をつける

ことで、

とするだけでスクリプトファイルを実行できる。

Windows でも、あまりやっている人はいないが同様のことができる。 しかも、いちど設定すれば同じ拡張子のファイルすべてに適用される。 ついでなのでやっておこう。

手順は以下のとおり:

  1. スタートメニューから「コマンドプロンプト」を探し、 右クリックして「管理者として実行」をクリック
  2. 開いたコマンドプロンプトで、
    > setx PATHEXT %PATHEXT%;.GO -m
    を実行
  3. 続いて、
    > assoc .go=goscript
    > ftype goscript=c:\tools\go\bin\go.exe run %0 %*
    を実行

これで、今後は、script_file.go という Go スクリプトを書いたら、コマンドプロンプトで

と打つだけで実行されるようになる。便利!

ということでした…。さて、 一回目で Hello, World までいかない言語ハウツウ記事って珍しいが、 次、第三回でいよいよ Go のスクリプトを動かす!