問題タブ [packaging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .NET 構成を環境中立にする
.NET アプリの構成を環境中立にするためのベスト プラクティスについて考えてみたいと思います。
バックグラウンド。最初にいくつかの背景。私は .NET の世界ではなく、Java の世界から来ました。Java では、環境に依存しないパッケージを構築するためにできることがいくつかあります。それらは通常、何らかの方法で構成を抽象化することに基づいています。以下にいくつかの例を示します。
- JNDI を使用すると、アプリはエンタープライズ リソース (データベース、JavaMail セッション、JCR リポジトリなど) を名前で参照でき、その名前は環境 (dev、test、prod) に従って特定の構成にマップされます。
- もう 1 つの例は、プロパティ ファイルです。アプリの起動時に既知の場所にあるプロパティ ファイルからアプリが取得する一連のプロパティ (「encryption_key」、「smtp.server.url」、「admin.email」など) がある場合があります。プロパティ キーは、環境に応じて異なる値にマップされます。
- 一部のアプリ開発フレームワーク (Spring など) は、プロパティ ファイルをプルする方法を知っているため、プロパティをフレームワーク構成と統合できます。
私が Java で見たもう 1 つのアプローチはビルド時アプローチで、Ant (トークン置換) または Maven (ビルド プロファイル) を使用して環境固有のパッケージをビルドします。テストと本番用にまったく同じパッケージをデプロイすることを強く好むという理由だけで、このアプローチはあまり好きではありません。しかし、それは私が見たアプローチです。
望ましい解決策。.NET には、その環境から構成 (および拡張により、含まれているパッケージ) を分離するためのいくつかの同等の戦略があると想定しています。
理想的には、環境以外の構成をアプリに密接に関連付けて、環境のみを外部化できるソリューションが必要です。Java の例に戻ると、多くの場合、「構成」は実際には開発者が制御するものです。たとえば、ページ装飾用の Sitemesh サーブレット フィルター、依存性注入またはアプリ ワイヤリング、およびそのような MVC コントローラー メソッドのマッピングなどです。リクエストURIなどに。外部化されたくないもの。しかし、暗号化キー、DB 接続文字列、ログ レベルなどはそうです。
python - SCM に依存せずに Python パッケージの開発バージョンを処理するにはどうすればよいですか?
Pinax の開発中に発生する問題の 1 つは、外部アプリの開発バージョンを扱うことです。バージョン管理システムの導入を伴わない解決策を考え出そうとしています。理由は、考えられるすべてのバージョン管理システムを自分のシステムにインストールする (または貢献者にそれを強制する) 必要がなく、環境の作成中に発生する可能性のある問題に対処する必要がないからです。
この状況を考えてみましょう (Pinax の仕組みを理解することは理解に役立ちます):
新しいバージョンの Pinax の開発を開始しています。以前のバージョンには、明示的なバージョンが設定された pip 要件ファイルがあります。解決したい外部アプリのバグが発生しました。Pinax でそのバグ修正を取得するための現在のプロセスは、アプリを制御できると仮定して、アプリのマイナー リリースを作成することです。私たちが制御できないアプリは、アプリの作成者のリリース サイクルに対処するか、リリースを強制するだけです ;-) バグ修正のために常にマイナー リリースを作成するのはあまり好きではありません。アプリの新機能にも取り組んでいます。もちろん、古いバージョンのブランチは私たちが行っていることであり、必要に応じてバックポートを行います。
これについていくつかの考えを聞きたいです。
java - Maven を使用して jar に依存関係を含める
すべての依存関係を 1 つの jar ファイルに含めるように maven(2.0.9) を強制する方法はありますか?
単一のjarファイルにビルドするプロジェクトがあります。依存関係のクラスもjarにコピーしたい。
更新: jar ファイルに jar ファイルを含めることはできないことを知っています。依存関係として指定されている jar を解凍し、クラス ファイルを自分の jar にパッケージ化する方法を探しています。
python - プログラム*および*動的にロードされたファイルを単一の実行可能ファイルにパックしますか? (python + pygame、または言語に依存しない)
スタンドアロンの実行可能ファイルの作成に関する質問に対する優れた回答はたくさんありますが、アート アセット (または動的に読み込まれるファイル) をそれにパックする方法もわかりません。なぜ私はこれをしたいのですか?インストーラーなしで単一の実行可能ファイルに完全に存在する単純な (使い捨ての) ゲームを配布するのは素晴らしいことだからです。
検索からわかる限り、2 つの基本的なアプローチがあります。
1) コンテンツ生成を優先してアート アセットを避ける。単純なスプライトを Python スクリプト内にある RLE ピクセル カラー リストに変換するプログラムを作成できます。これはスクリプトなので、パッケージ化ツールを使用して exe にバインドされます。右?
2)ディレクトリ構造を一時ディレクトリ(またはおそらくメモリ)にダンプできる自己解凍型アーカイブを使用してから、プログラムのエントリポイントを自動的に実行します。
私がやろうとしていることは理にかなっていますか?2 番目のオプションの方がはるかに理にかなっているように見えますが、python と pygame でそれを実現するためにどのツールを使用するかはわかりません。私はpy2exeを使用しましたが、pythonスクリプトとインポートされたモジュールのみをパッケージ化しました。
編集:
このスレッドは、依存関係と共にプログラム データを含めるようにパッケージング ユーティリティに指示できると思わせます。本当?
c# - プログラムがインストールされている場所を追跡する最も簡単な方法は何ですか?
作業中、アプリケーションの場所をハードコーディングしました。
明らかに、アプリケーションをパッケージ化して配布すると、これは機能しません。インストール先を追跡するにはどうすればよいですか?
私は主にLinuxパッケージ(特に.deb)に関心がありますが、これをWindowsとMacのパッケージについても学ぶための演習として使用することを計画しているので、すべてのヒントを歓迎します。
c# - MonoDevelopを使用してLinuxアプリケーションをパッケージ化するにはどうすればよいですか?
MonoDevelopを使用してC#で記述された趣味のプロジェクトがあります。Linuxのパッケージングに頭を悩ませようとしばらく努力してきましたが、イライラして圧倒されてしまいます。
私のプログラムは以下で構成されています:
- 私のプログラムによって作成されたデータを処理するライブラリプロジェクト(「ジェネレータ」)。
- Gtk#を使用したui(「インターフェース」)プロジェクト。このプロジェクトには、「glade」(gtkがウィジェットの作成に使用するxmlファイル)と「book」(私のプログラムで使用されるデータ)の2つのサブディレクトリがあります。
- ライブラリプロジェクトとインターフェイスプロジェクトの両方で使用されるユーティリティプロジェクト(「Utils」)。
- インターフェイスを開始するだけのメインプロジェクト( "MyProgramName")。
私がやりたいこと(私は思う)は本当にとても簡単です(私は思う):
- アプリケーションをコンパイルする
- .exeファイルと.dllファイルを(/ usr / local / bin?に)コピーします。
- 「book」ディレクトリを(/ usr / local / binに)コピーしますか?
- 「glade」ディレクトリを(/ usr / local / binに)コピーしますか?
ああ、これを.debパッケージとして実行したいと思います。tarballを機能させることができれば、.debパッケージはそれほど問題にならないはずですが、最終的にはそれを実行したいと思います。
私はまだこれを行う方法が本当にわかりません。私はMonoDevelopを使用してTarballを作成しました。tarballをインストールすると(、、を使用して./configure)make、sudo checkinstall実行可能コードがインストールされているように見えます(さらに、プログラムを実行するコマンドを作成しているようです)が、「book」および「glade」ディレクトリを忘れています。
どうすればこれを行うことができますか?これが基本的/幅広い質問である場合は申し訳ありません。私はこれについて調べてきましたが、パッケージングの基本を知っていることを前提としないものは何も見つかりません(これを前提としないと主張している場合でも)。
linux - .deb パッケージの設定ファイルの問題
.deb パッケージを使用してアプリケーションの 1 つを配布していますが、ファイルの 1 つに関連する問題があります。
ディストリビューションには、アプリによって常に更新されるデータベース ファイルが含まれています。新規インストールでは、インストーラーに新しい空の db ファイルをユーザー システムにコピーさせたいのですが、アップグレード時には、インストーラーに既存のコピーをそのまま残しておきたいのです。 (上書きすると、すべてのユーザー データが失われます)。
現在、「conffiles」ファイルにファイルを含めているため、インストーラーは常にユーザーに既存のファイルを上書きするかどうかを尋ねますが、これは私が望む動作ではありません-ファイルを上書きすることは決して正しいことではなく、ユーザーがアップグレード中に間違ったオプションを選択し、データをホースする可能性があることを懸念しています。
インストーラーに、db ファイルが既に存在する場合はそのままにし、ユーザーに何をすべきかを尋ねないことを伝える方法はありますか?
unix - solaris のインストーラーの作成方法
アプリケーション用のrpmファイルをすでに作成しています。Fedora Linux では問題なく動作します。Linuxミントでも同じことがうまくいきました。ただし、Solaris は rpm をサポートしていません。では、solaris OS のインストーラー パッケージを作成する方法について説明します。OSとしてsolaris 10 Linuxを使用しています。
ありがとうスニル・クマール・サフー
installation - Java プログラムのパッケージ化と配布
Java プログラムをパッケージ化してリモート デバイスに配布する方法が必要です。Web Start は、Jar のみを配布し、Web サーバーを必要とするため、理想的ではありません。インストール中にスクリプトを配布して実行する必要があり、他の種類のファイルが必要です。