问题标签 [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.
security - 相当开放的 UNIX 产品的许可和/或并发使用强制机制?
对于如何向(基于 UNIX 的)软件产品添加许可证密钥强制或并发用户限制强制的任何建议,我将不胜感激 - 虽然没有明确开源 - 最终用户名义上拥有或可以拥有源代码,可以想象,由于运行它的服务器位于其场所等,因此相对容易获得。
显然,我既不寻求也不期待一种技术,这种技术不能被有强烈动机的人绕过,和/或 1337 h4x0rs 就是这样的好。这种反盗版机制的重点不是阻止用户做他们真正想做的事情,而只是让它变得足够烦人,与付费相对容易相比,这并不值得麻烦另一个(便宜的)许可证 - 至少对于仅具有平均能力的最终用户而言。
这需要更复杂的东西,而不仅仅是通过默默无闻的安全性(这也会让可能遇到它的用户嘲笑你,即使无意中没有修改设置的意图),但没有什么接近于保护导弹发射井所需的东西。说几句就够了,“是的,这个产品确实限制了你购买的东西的使用。” 理想情况下,不应该有足够有趣的东西来激励寻求名利的人发布一篇关于如何破解它的博客文章,尽管考虑到该产品的利基性和价格低廉,我不认为这是关注。
我能想到的唯一真正的技术是将一些对程序的其余部分在功能上必不可少的例程编译成静态或动态二进制可重载对象,并连同它一起包含检查。例程必须在某些不可分割的方面至关重要,而不是仅针对该特定条件进行人为检查,否则用户可能只是去禁用对该函数的调用。这个想法是禁用对函数的调用也会产生其他不吸引人的后果。
这不是聪明的黑客无法反汇编的,而且,显然,如果该函数足够微不足道,可以构建到一个没有目的的二进制文件中,那么它也足够微不足道,可以在它之外重新实现。但这比典型的最终用户会费心去经历更多的努力。当然,再一次,重点不是机械地阻止盗版,而只是设置一点限制,使产品不能纯粹在荣誉系统上运行,尽管我相信这对许多企业买家来说已经足够了在美国。
这是一种常见的方法吗?有更好的吗?
java - 用于商业发行的 Java 许可
我正在考虑使用 Java 编写一个程序,我有一天可能会尝试出售。我是 Java 新手,所以我不得不问,我需要哪些类型的工具/软件/等(从开发到分发,再到用户机器上的用户友好型安装),这些工具/软件/等具有必须考虑确保的许可证他们允许销售和封闭源代码等?
我们是否应该假设用户已经运行了至少一个 Java 应用程序,因此他们的机器上有一个相当新的 Java 版本?
另外,您对绝对适合此目的的特定工具有什么建议吗?
software-distribution - 软件的安全电子邮件
有些人通过 PayPal 购买了我的应用程序(没有DRM)。我没有在应用程序中包含更新功能(坏主意。)现在有了更新,我想我可以通过电子邮件向所有以前的客户发送他们可以安装的更新版本的链接。不幸的是,这个想法太容易受到攻击(只需复制并在论坛上发布链接),因此被拒绝了。我如何向所有购买了该应用程序的人发送电子邮件,并提供一个不易受到攻击的安全链接?
谢谢,艾萨克
database - 带有数据库的 Windows 窗体应用程序设置
我编写了一个需要数据库的应用程序。我一直在我的机器上使用 SQL Server 的本地副本,但想为这个应用程序构建一个设置,安装它自己的数据库来支持该应用程序。我宁愿不必让用户自己安装 SQL,然后配置应用程序。
谁能在这里指出我正确的方向?
licensing - 将软件许可证绑定到机器/环境的最佳方法?
我需要创建一个软件许可证密钥,其中一项要求是将密钥绑定到特定服务器,以避免图像重复。1. 实现此任务的首选方式是什么(CPU、MAC、其他)?2、可以在虚拟机上实现吗?
跨平台方法的额外学分:)
java - 在不同的操作系统上发布 java 应用程序
我有一个 java 应用程序,我想将它作为 exe 或 dwg 等发布,以便不同平台上的用户可以双击它并让它开始运行。但是为了让我的代码能够很好地工作,我需要它作为 Windows 服务工作,以及其他操作系统中的任何等价物。使用 Java web start 不是一个解决方案,因为据我了解,如果客户端机器关闭,那么用户将不得不再次双击该 exe。我已经尝试过 java 服务包装器,但我看不到如何使其可发布。
谢谢普拉纳贝什
linux - 跨 Linux 发行版分发二进制应用程序
我编写了一个尚未开源的应用程序,我想在各种 linux 发行版中分发可执行文件。最好的方法是什么,我看了一点 .rpm 和 .deb 包装,但我找不到它是否可以用于二进制文件。理想情况下,我想要 OS X 上的 PackageMaker 或 Windows 上的常规安装程序,它会自动复制到 /usr/bin 中。那是 .rpm 和 .deb 包的用途,还是我必须捆绑一个会自动执行它的 shell 脚本?
database - 将客户端-服务器应用程序开发为零售产品时应该使用哪个数据库?
我们正在开发一个可以现成出售的客户端-服务器软件(C#,Net 2.0)。该产品属于医疗领域。
任何人都可以为以下条件建议最佳数据库:
- 应该能够免费分发给客户。
- 客户也应该能够将图像添加到数据库中。
- 占地面积小。
- 快速、稳定、安全且不会崩溃。
我们正在开发 MSSQL 2005 Express 和 Mysql 5.0。您可以建议任何更好的数据库吗?
ruby - 给定一个 ruby 脚本如何弄清楚它依赖于什么?
我想将一个 ruby 脚本分发给我的许多朋友,因为它很有用。但是我怎么知道他们还需要安装什么?我的意思是在脚本的顶部,有这样的:
这让我对他们需要安装什么有了一些了解,但是上次我在朋友的计算机(Linux)上尝试过上面的每一个都需要移动包。例如,activesupport 需要一个数据库,如果这个脚本是 sqlite3,所以我必须安装 sqlite3 和一堆 lib,甚至可能是 dev 包。
是否有任何工具或方法可以收集所有依赖项的列表,以便我可以将它们包含在安装说明中?或者更好的是,有没有办法将它们打包成一个简单的安装程序?
maintenance - 有没有人观察过软件维护时间与软件用户数量的比例趋势?
例如,您是否注意到 1000 名用户使用的软件的支持请求量与仅 50 名用户相比存在很大差异?还是它与软件的实际可靠性更相关?这几乎就像计算我们花额外的时间来正确地制作软件对我们来说有多大价值,这将是一件好事,将管理推销给合适的人?