Google App Engine + Go + glide on Mac インストールメモ(特殊ケース)
Google Cloud SDKとApp Engine SDK両方使いたいという特殊ケースです。
通常はどちらかをインストールすればOKなはず。
ゴール
今回インストールするのは以下:
- Google Cloud SDK + app-engine-goコンポーネント
- App Engine SDK for Go (goappツールのため)
- Go 1.6
- glide
前提条件
- Mac macOS Sierra 10.12
- Googleのアカウントを持っていること
- Python 2.7がインストールされていること
インストール
Cloud Platformでの準備
コンソール(Cloud Platform Console)からCloud PlatformのプロジェクトとApp Engine applicationを作成します。
GO TO APP ENGINE
SDKのダウンロードとインストール
ここではインストール先は$HOME/LocalLibraryとして進めます。
mkdir $HOME/LocalLibrary
Google Cloud SDKとapp-engine-goコンポーネント
cd $HOME/LocalLibrary
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-145.0.0-darwin-x86_64.tar.gz
tar xvfz google-cloud-sdk-145.0.0-darwin-x86_64.tar.gz
./google-cloud-sdk/install.sh
./google-cloud-sdk/bin/gcloud init
source ~/.bash_profile
gcloud components install app-engine-go
App Engine SDK for Go
cd $HOME/LocalLibrary
curl -O https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_darwin_amd64-1.9.54.zip
unzip go_appengine_sdk_darwin_amd64-1.9.54.zip
echo 'export PATH=$PATH:$HOME/LocalLibrary/go_appengine/' >> ~/.bash_profile
source ~/.bash_profile
追記:最近のGo1.8対応されているものの場合、go_appengineの下にgorootに設定されるフォルダがないのでエラーになる場合があります。
以下のようにシンボリックリンクを作成することでエラーを回避できます。
cd ~/LocalLibrary/go_appengine
ln -s $HOME/LocalLibrary/go_appengine/goroot1.6 goroot
Goのダウンロードとインストール
App EngineがサポートしているのがGo1.6なので、それに合わせます。
パッケージをダウンロードしてインストール。
- https://storage.googleapis.com/golang/go1.6.4.darwin-amd64.pkg
GOPATHとPATHを設定:
mkdir $HOME/go
echo 'export GOPATH=$HOME/go' >> ~/.bash_profile
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bash_profile
exec $SHELL -l
glideのダウンロードとインストール
mkdir $GOPATH/bin
curl https://glide.sh/get | sh
インストールは以上です。
SDKについて(Google Cloud SDK、App Engine SDK)
- Google Cloud SDK
- スタンダード環境
- フレキシブル環境
- App Engine SDK
- App Engine SDK for Go
まず、SDK(Google Cloud SDK)をインストールしようとすると、環境が2つあって迷います。
「スタンダード環境」と「フレキシブル環境」の2つ。
フレキシブル環境はまだアルファ版なので、スタンダード環境を選びます。
クイックスタートや今から開発環境を作る人はGoogle Cloud SDK + app-engine-goコンポーネントのみで良いです。
ややこしいことに、「App Engine SDK」が別に存在していて混乱します。
Google Cloud SDKはGoogle Cloud Platformのサービスにコマンドラインからアクセスできるツールです。
App Engineだけでなく、Google Compute Engine、Google Cloud Storage、Google BigQueryなど、他のサービスにも対応しています。
App Engine SDKに相当する機能がGoogle Cloud SDKのコンポーネントとしてインストールできます。
App Engine + Goの場合はGoogle Cloud SDKのapp-engine-goコンポーネントがApp Engine SDK for Goと同等の機能となります。
機能は同等なのですが、使い方やツールが違う場合があります。
具体例をあげますと、App Engine SDK for Goにだけ「goapp」というツールがあり、App Engine SDK for Goベースのプロジェクトのスクリプトなどに使われていたりする場合があるので、既存の環境に対応したい場合、Google Cloud SDKとApp Engine SDK for Goは両方入れておくと良いかと思います。
というわけで、goappコマンドを使いたいがためだけにGoogle Cloud SDKとApp Engine SDK for Goを両方使えるようにしました。