我想为不同的 Linux 发行版发布一些软件,使用常规的 Linux 打包格式(rpm、deb、yast 等)。我的包裹需要点击许可协议。哪些 Linux 工具和包格式支持在安装软件之前向用户显示的包中的许可证?
4 回答
.deb 肯定可以;来自 Debian non-free 的 sun-java* 软件包有一个。
请记住,在 Linux(和其他 Unix 系统)上,通常由管理员安装软件,但实际使用它的人却不同。您可能希望在每个用户第一次运行该软件时显示您的点击许可。
(嗯,实际上, dpkg 是基于文本的,所以它不是点击,而是打字,但是......)
正如 derobert 所说,在 Unixy 系统上,安装软件的通常不是最终用户,因此要求安装程序/管理员同意许可可能不是您想要的(取决于软件的目的和许可文本,我猜测)。
多年来,点击式(或收缩包装,略有不同但原理基本相同)许可证一直是争论的焦点,因为虽然用户“接受”但很难证明是用户接受了许可证,并且用户在使用该软件之前实际阅读了呈现给他们的内容。
举个例子,让你的 lcoal mom+pop 电脑维修店安装/升级 Windows;他们通常单击许可证页面,以便将捆绑的所有其他垃圾软件安装到 PC 上,而实际所有者没有机会阅读或同意许可证。
值得在您的管辖范围内查找该类型许可证的合法性以及您打算定位的用户的管辖范围。
我也不会依赖包管理来为您执行此操作。我肯定会将它作为您的应用程序代码的一部分。如果需要,您可以为几乎任何包管理器获取安装后脚本来运行点击程序,但我认为最好将其作为每个用户运行。
不应使用 RPM 的安装脚本来提示问题,因为不能保证代码在脚本中运行。(它可以从 GUI 安装,而且人们不希望脚本在大型安装事务中暂停)。您可以命名 RPM 使用的许可协议,并在首次运行时向用户展示,或者从他们的下载站点或通过在说明中添加注释来显示。
您可能不想通过打包机制执行此操作,但不能保证点击。相反,您可能会考虑在第一次运行应用程序时提供这样的许可证。不要依赖基于诅咒的窗口提示,一些软件包安装程序只会将它们重定向,您的安装将永远挂起。
一些应用程序现在这样做是为了维护商标政策,而另一些应用程序则更深入一些。大多数 Linux 用户不喜欢 EULA 协议,但我猜任何安装您的软件的人都会期待一个。