2016-09-22 2 views
3

Go SDKは現在Goバージョン1.6.2で出荷されていますが、最新のバージョンは1.7.1です。 1.6.2からリリースされたいくつかの拡張機能/バグ修正が必要です。しかし、GorootディレクトリをGo 1.6.2を含むSDKディレクトリに置き換え、1.7.1のシンボリックリンクを置き換えると、bin/goappを見つけることができないというエラーが表示されます。これはApp Engine専用で標準Goビルドでは提供されていないようです。AppEngine/Go:SDKで新しいバージョンのGoを使用

誰でもAppEngine SDKで利用可能なGoをアップグレードする方法を知っていますか?これは、生産での移動も1.6.2であることを意味しますか?

答えて

7

残念ながら、最新のApp Engine Go SDKにバンドルされているGoバージョンが問題になっています。

Go 1.7.1でローカルに「切り替え」ても、何とかGo 1.7.1でアプリケーションをコンパイルして実行すると(SDKのGoルートから不足しているファイルを追加することによって)、現在の運用環境Go 1.6.2を使用しているため、1.6.2から抜けたコードが参照されると、アプリとGoコードは実際の環境でエラーに陥ります。ほとんどの場合、展開さえ失敗する可能性があります。

アプリをApp Engineにデプロイすると、ソースファイルのみがアップロードされ、アプリはクラウドでコンパイルされます。したがって、ローカルでコンパイルしたり、ソースファイルを何らかの形で "除外"したり、バイナリのみをアップロードしたり(バイナリはアップロードされていなくても)、 "トリック"することさえできません。

Go 1.7.1(またはそれ以降)がSDKに移行するのを待つ以外は何もできません。 SDKにバンドルされているGoバージョンは、通常は「ライブ」バージョンになるため、通常はApp Engineのサンドボックス環境(特定の制限を適用または実装する必要があります)の変更/変更が必要なため、セキュリティに関してさらなる/追加のテスト/強化が必要です。

+0

それはより重要な質問(生産について)でした。ありがとう。 –

+0

これを開発する方法はありますか?別のバージョンでローカルマシンを混乱させるのではなく、一種の仮想envで? – gideon

関連する問題