【问题标题】:Generate custom Windows-based EXE installer from *nix webserver on the fly (OpenVPN client custom installer)即时从 *nix 网络服务器生成基于 Windows 的自定义 EXE 安装程序(OpenVPN 客户端自定义安装程序)
【发布时间】:2011-02-09 04:21:45
【问题描述】:

这与this other question 有关。我需要从包含要安装在客户端机器上的自定义文件的 *nix 机器(运行 PHP 或其他)动态生成自定义 Windows EXE 安装程序。

这将用于根据客户端的偏好和身份验证信息生成特定于客户端的 OpenVPN 安装程序。运行时并不重要,因为它可以异步完成。

一些想法,已经尝试过但不起作用:

  1. 使用类似于 ninite.com 的方案,其中下载的可执行文件始终相同,但文件名不同,因此安装程序使用文件名中的信息做出决定。
  2. 使用资源编辑器编辑预建安装程序的资源。不仅windows可执行的unix资源编辑器很少见,而且还会产生新的问题,并不能解决安装不同文件的问题。

在 UNIX 上运行的 NSIS/InnoSetup 编译器(针对 Windows)最有效,但其他创造性的解决方案也可以。

【问题讨论】:

  • 看看 Google 是如何使用 Omaha 的,这不是您想要的,但可能会给您一些想法。
  • 谢谢,这很有趣,但并不真正相关。我需要在 UNIX 上生成(编译)一个安装程序,以便在 Windows 上运行。之后,它甚至可能使用 Omaha 来保持软件更新,但首先,我需要将安装程序提供给客户端。谢谢。

标签: php windows unix installation openvpn


【解决方案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”包的形式提供。它有可用的“makensis”,它可以(在 Unix 上)从 .nsi 文件编译 windows 可执行文件。

仅供参考,我可以在 5 秒内编译完整的 .exe 安装程序,包括所有动态内容。 PHP用于在准备好构建后执行()构建,并将exe作为下载发送到客户端。

我想这(或类似的东西)是它在商业 OpenVPN 服务器产品中的工作方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2014-05-24
    相关资源
    最近更新 更多