问题标签 [software-distribution]

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.

0 投票
3 回答
8771 浏览

macos - 如何分发带有依赖库的 Mac OS X?

我有一个程序(特别是我的SO DevDays Countdown 应用挑战条目),它依赖于几个动态库,即 libSDL、libSDL_ttf 等。我/opt/local/lib通过 MacPorts 安装了这些库,很多人不会安装这些库(有些人可能安装了它们,但不是在那个位置)。

如何分发我的程序,以便没有安装这些库的人可以开箱即用地运行它?显然我必须分发各种.dylib文件,但这样做是不够的。动态加载器仍会查找安装在我安装它们的位置的库。有没有办法告诉动态加载器查看可执行文件的当前目录,就像 Windows 对 DLL 所做的那样?人们不应该修改任何环境变量(例如DYLD_LIBRARY_PATH),因为我希望它能够开箱即用。

0 投票
1 回答
496 浏览

sql-server - 使用 sql 2005 为应用程序安装支持文件,其中服务器位于另一台计算机上

我有一个托管 C++ 应用程序,它通过网络连接到同一台计算机上的 SQL Server 2005 Express 数据库。我的问题是,如果数据库位于网络上的另一台计算机上,客户端计算机将不会从 SQL Server 安装所需的 DLL 文件。

我不能强迫我的用户在客户端机器上安装 SQL Server 2005 Express 只是为了获得所需的支持文件。所以我的问题是,将依赖文件安装到用户计算机上的 GAC 是否安全?或者,MS 是否有为此目的的命令行安装包?

我的应用程序显示为依赖的 SQL Server 文件如下:

Microsoft.SqlServer.BatchParser Microsoft.SqlServer.ConnectionInfo Microsoft.SqlServer.RegSvrEnum Microsoft.SqlServer.Replication Microsoft.SqlServer.Rmo Microsoft.SqlServer.ServiceBrokerEnum Microsoft.SqlServer.Smo Microsoft.SqlServer.SmoEnum Microsoft.SqlServer.WmiEnum

如果有帮助,我正在为我的安装程序使用 Inno-Setup 程序。这必须是一个普遍的问题。

0 投票
4 回答
191 浏览

architecture - 从公共网站启动 win32 本机可执行文件

我遇到了一个架构挑战,我正在寻找想法。

客户有一个现有的 win32 本机应用程序,他们非常抗拒以任何微不足道的方式进行更改。它是用非托管 c++ 编写的,并且至少使用一个 3rd 方 dll,因此它不是一个独立的 exe。它是什么并不重要,将其视为客户支持沟通工具。理想情况下,客户希望从网站启动它,而不是将其作为可安装程序发布。此外,客户需要在执行时将令牌传递给可执行文件,以便它可以打电话回家并要求更多指令。

我将继续承认,应用程序的启动方式应该是最初的设计考虑因素之一,而不是最后一个考虑因素——但事实就是如此。

对恶意软件、间谍软件、特洛伊木马等的安全问题使得这种分发模式不太可能发生。我这样做比找到一个合法的方法来完成它有更多的经验。

欢迎任何想法(正面或负面)。

0 投票
10 回答
16530 浏览

linux - 为 Linux 分发二进制应用程序的最佳方式是什么?

我刚刚将一个应用程序从 Windows 移植到 Linux。
我必须创建应用程序的安装程序。
该应用程序不是开源的 => 我应该分发应用程序的二进制文件(可执行文件、一对 .so 文件、帮助文件和图像)。

我找到了几种方法来做到这一点:
- RPM 和 DEB 包
- .sh 文件中的安装程序
-自动包装

我不喜欢第一种方法(RPM 和 DEB 包),因为我不想为不同的 Linux 发行版维护不同的包。

为 Linux 分发二进制应用程序的最佳方式是什么?

0 投票
4 回答
380 浏览

distribution - 一个有趣的软件分发问题

我有一个问题,我相信你们中的一些人会有兴趣在这里讨论。开始:

我和几个朋友一直在开发一个小型 Windows 应用程序,这可能正是小众市场想要的。我们正处于发布 1.0 的最后阶段

我们一直在考虑分配安排,我们提出了两个基本要求:

a) 我们不热衷于购买支付网关。我们正在寻找一个合适的网站,在这里我们可以展示我们的产品信息,并且可以负责销售和分销——包括付款安排和以后支付我们的份额。类似于适用于 Windows 应用程序的 Apple App Store。

b) 我们不想将我们的功能二进制文件的副本传送到此分发站点。相反,我们只想在我们的站点上托管二进制文件,并将它们提供给已通过分发站点验证的客户。(我们对于在 3rd 方网站上托管二进制文件有点偏执 - 不幸的是,这是一个不可变的标准。)

有谁知道可以通过 a) 和 b) 的分发站点?

0 投票
5 回答
3660 浏览

software-distribution - 您使用什么服务来分发软件?

我在一家中型软件公司工作,我的任务是寻找一种以电子方式分发我们软件的新方法。我们没有超快速的连接来自己分发它,所以它需要是一个我们可以上传和发送链接给客户的解决方案。客户不会从我们的网站购买我们的软件,因为我们已经通过直接销售和合作伙伴销售完成了大部分销售。自从我加入公司以来,我们已经从 CD 分发大小的下载发展到 DVD 大小的分发下载。我们发布了一个新版本,发现 YouSendIT 服务很笨拙,我们 99% 的客户都会收到下载该软件的链接。如果要求,我们只会发送印刷媒体。除了 yousendit 之外,还有没有允许无限文件大小上传/下载的服务。我听说过下降。io,它似乎与 yousendit 相似。如果您能指出我的方向,由第三方托管的电子软件分发系统将不胜感激。

谢谢

麦克风

0 投票
3 回答
131 浏览

operating-system - 从 windows xp -> Vista -> Windows 7 升级软件时究竟发生了什么变化

我猜

  1. Win32 API
  2. MFC
  3. 。网
  4. Java(也是托管的)

是制作 Windows 应用程序的“唯一”方法。 请提及我们是否可以通过其他方式构建赢应用程序

如果它是托管环境 .NET 或 Java。该应用程序将在所有操作系统上运行,无论其版本如何。它只关心框架中的版本(api)变化。

现在来到 Win32api/mfc 我猜这些 api 将仍然向后兼容。所以,当为 windows XP 构建应用程序时。他们需要发布一个单独的 Vista 版本和一个单独的 WINDOWS 7 版本。

为什么?如果它是一个 windowsxp 32 位应用程序。它也应该在 Vista 32bit 和 Windows 7 上运行。正确的?为什么他们必须在新操作系统发布时发布单独的版本(Windows 7)。为什么有些xp应用不能在win7上运行。

好的。假设要发布更新的版本。他们需要做的就是为/在这个较新的 win7 上编译相同的源代码,对吧?那为什么人们要花这么多时间来升级他们的软件。

所以软件可以在所有 xp、vista、win7 上运行,但问题很严重,尤其是硬件驱动程序。必须为新操作系统提供新版本。为什么会这样?

0 投票
2 回答
358 浏览

tcl - 如何分发用解释语言构建的项目?

我已经用解释语言(Tcl/Tk)和 Perl(两者都是开源)启动了一个项目(开发人员文本编辑器),但是有一段时间,当它进入 Beta 版本时,我需要分发它适用于用户(当然是开发人员),但我想知道一些关于此的事情:

  • 可以编译成可执行文件吗?
    • 如何?
    • 我可以为其他平台编译吗?
  • 或者在这种情况下最好使用编译语言还是解释语言?
  • 平常的事情是这样的吗?
  • 在用户机器上,他需要有 Tcl/Tk 还是 Perl?
0 投票
2 回答
1957 浏览

python - 创建可移植的 Django 应用程序 - 需要帮助

我正在构建一个 Django 应用程序,我可以在 Ubuntu Linux 主机上轻松运行(测试:))。我想打包没有源代码的应用程序并将其分发到另一台生产机器。理想情况下,应用程序可以通过 ./runapp 命令运行,该命令启动运行 python/django 代码的 CherryPy 服务器。

我发现了几种方法:

  1. 仅分发 .pyc 文件并在目标机器上构建和安装所有要求。
  2. 使用众多工具之一将 Python 应用程序打包到可分发的包中。

我真的很想选择 nr.2 选项,我希望包含我的 Django 应用程序,因此可以分发它而无需安装或配置其他东西。搜索互联网给我提供了比答案更多的问题和一个非常酸的味道,Django 打包是一种每个人都知道但没人谈论的神秘艺术。:)

我已经尝试过 Freeze(失败)、Cx_freeze(简单安装版本失败,存储库版本有效,但应用程序输出失败)并在 dbuilder.py 上重新启动(它应该可以工作,但实际上并不能正常工作 - 我猜)。如果我理解正确,大多数问题都源于 Django 导入模块的方式(示例),但我不知道如何解决它。

如果有人可以在线提供有关打包/分发独立 Django 应用程序的任何指针或好的资源,我将非常高兴。

0 投票
3 回答
2181 浏览

linux - 下载时创建自定义 .dmg 文件

我想分发一个跨平台应用程序,其可执行文件略有不同,具体取决于下载它的用户。这是通过在可执行文件中的某处放置一个占位符字符串来完成的,该字符串在下载时被用户特定的内容替换。

必须进行这些字符串替换的网络服务器是一台 Linux 机器。对于 Windows,可执行文件未在安装程序 .exe 中压缩,因此字符串替换很容易。

对于未压缩的 Mac OS X .dmg 文件,这也很容易。但是,使用 gzip 或 bzip2 压缩的 .dmg 文件并不容易。例如,在后一种情况下,压缩的 .dmg 不是一个大的 bzip2 压缩磁盘映像,而是由几个不同的 bzip2 压缩部分(具有不同的块大小)和一个 plist 后缀组成。此外,使用 bzip2 解压缩和重新压缩不同部分不会产生原始数据,所以我猜测 Apple 对 bzip2 使用了一些与命令行工具不同的参数。

有没有办法在 Linux(没有 hdiutil)上从未压缩的 .dmg 生成压缩的 .dmg?或者也许是创建自定义应用程序而不预先生成它们的另一个建议?它应该在没有用户输入的情况下工作。