私はGoにアプリケーションを書いています。コンパイルする前に満たされる必要のある2つの外部依存関係があります。 Goエコシステムでは、これらのリモートdepsのインストールを含む簡単なインストールプロセスのためにこのアプリをパッケージ化する最良の方法は何ですか?ユーザーが私のアプリをどのようにインストールしますか?Goアプリの配布方法は?
答えて
ユーザーがアプリケーションをコンパイルするために期待していると、そのアプリケーションはサードパーティ製のパッケージや資産に依存している場合、私はちょうどサポートされているプラットフォーム用のクロスコンパイルしてバイナリを提供することをお勧めしたいです。
あなたが(例えば、設定ファイル)を使用すると、アプリケーションと一緒に提供したい資産を持っている場合は、次のいずれかa)の資産とtar /はそれをジップ付きバイナリをパッケージ化。 b)base64でアセットをエンコードし、バイナリsee here for a good exampleにコンパイルするか、またはc)ユーザに対してこれを行うビルド/インストールスクリプトを作成します。
正確な要件を明確にすることができれば、より直接的に答えやすくなります。
特にビルド/インストールスクリプトでは+1です。合理的にインテリジェントなスクリプト(またはMakefile)をソースディストリビューションに含めることができれば、パッケージマネージャーの方がはるかに簡単です。 –
Goバイナリには、コードに与える可能性のある実行時依存関係はありません。コンパイルされた実行可能ファイルにランタイムライブラリが含まれています。
したがって、C、C++、または他のコードからコンパイルされた他のバイナリと同じ方法でアプリケーションを配布します。
Linuxでは、適切なツールを使用して.rpmまたは.debファイルを作成することがあります。 Windowsでは、InnoSetupのようなツールを使用してインストーラを作成できます。
Goは、1つのバイナリを生成します。外部依存関係がコンパイル時の依存関係である場合、ユーザーはそれらについて心配する必要はありません。すでにコンパイルされています。
実行時依存関係の場合は、exeと関連するexeがGoで書かれているかどうかは関係ありません。 EDIT:実行時の依存関係があっても1つのバイナリでなければならない場合、実行時の依存関係をコンパイルしてコンパイルする必要があります。一つの方法は、エリートラーが提案した方法です。
Goの観点から心配する必要があるのは、ユーザーのプラットフォーム用にコードをコンパイルしたことだけです。
- 1. あなたのアプリのiOS版の配布方法は?
- 2. Mac App Storeへの配布用Macアプリの署名方法
- 3. 開発暫定版iOSアプリの配布方法
- 4. iosアプリをヨーロッパのエンタープライズ顧客に配布する方法
- 5. Erlang Mnesiaの配布方法
- 6. ARKITアプリケーションの配布方法
- 7. Javaベースのソフトウェアの配布方法は?
- 8. PythonとScipy:von misesの配布方法は?
- 9. Imageフォルダの配布方法は?
- 10. Cocoa App:ベータ版の配布方法は?
- 11. 私有オフィスアドインの配布方法は?
- 12. perticularユーザーのためのアプリの配布
- 13. Xcodeアプリの友だちへの配布
- 14. 配布用のMacアプリのパッケージ
- 15. iPhoneアプリのデザインと配布モデル
- 16. FacebookアンドロイドSDKとアプリの配布とディープリンク
- 17. 別注iphoneアプリを配布する正しい方法は何ですか?
- 18. OSX cli/server appの配布方法
- 19. Tensorflow XLA AOTサポートのテンソルフロー配布方法
- 20. Adobe Air社で作成したサードパーティのiOSアプリの配布方法
- 21. Androidアプリでデータベースを配布する
- 22. sdカードにAndroidアプリを配布する
- 23. iPhoneアプリでSSH鍵を配布する
- 24. tesflightでテストした後、配布用のアプリを提出する方法
- 25. エンタープライズiPAファイルを配布する方法
- 26. データベースにテキストデータを配布する方法
- 27. condaでライセンスパッケージを配布する方法
- 28. Xcode 4.2で配布用iPhoneアプリをビルドして提出する方法
- 29. 配布コミットの仕方
- 30. iPhone - アプリ内購入アプリを配布する
外部依存関係は何ですか?そして、あなたがコンパイルするのを期待するか、バイナリの配布について話していますか? –
バイナリを配布したい – Carson
@Carsonバイナリだけ? "外部依存関係"と言うとき、**はサードパーティのパッケージ(つまり、 'get get url.to/package/name')のみを意味するか、バイナリと一緒に必要な他のファイルはありますか?明示してください。 – elithrar