1

これは、この他の質問に関連しています。クライアントのマシンにインストールするカスタム ファイルを含む *nix マシン (PHP などを実行) からカスタム Windows EXE インストーラーを動的に生成する必要があります。

これは、設定と認証情報に基づいてクライアント固有の OpenVPN インストーラーを生成するために使用されます。ランタイムは非同期で実行できるため、重要ではありません。

いくつかのアイデアは、すでに試してみましたが機能しません:

  1. ninite.com と同様のスキームを使用します。ダウンロードされる実行可能ファイルは常に同じですが、ファイル名が異なるため、インストーラーはファイル名の情報を使用して決定を下します。
  2. リソース エディターを使用して、ビルド済みインストーラーのリソースを編集します。Windows 実行可能ファイル用の unix リソース エディタはまれであるだけでなく、新しい問題を引き起こし、さまざまなファイルがインストールされるという問題を解決しません。

UNIX で動作する NSIS/InnoSetup コンパイラ (Windows を対象とする) が最適ですが、他の独創的なソリューションも問題ありません。

4

1 に答える 1

1

私自身の質問に答えると、NSIS (OpenVPN ソース コードでデフォルトで使用される) と Inno Setup の両方が Linux で実行できるようです。

Inno Setup は Wine で使用できます。これはコマンド ライン ユーティリティであるため、非常にシンプルで機能します。http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/を参照してください。

NSIS には実際にはネイティブの Unix ポートがあり、Ubuntu/Debian では「nsis」パッケージとして利用できます。.nsi ファイルから Windows 実行可能ファイルを (Unix 上で) コンパイルできる「makensis」が利用可能です。

参考までに、すべての動的なものを含め、完全な .exe インストーラーを 5 秒以内にコンパイルできます。PHP は、ビルドを準備した後に exec() するために使用され、exe をダウンロードとしてクライアントに送信します。

これ (または非常に類似したもの) が、商用の OpenVPN サーバー製品でどのように機能するかだと思います。

于 2011-02-16T01:34:45.513 に答える