在RPM包中添加许可协议
是否可以在RPM包中添加License协议? 用户安装RPM时,应提示接受用户许可协议。
Is it possbile to add License agreement in the RPM package?
When user installs the RPM, it should prompt to accept the user license agreement.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
出于技术和用户界面的原因,这都是一个坏主意。
不仅因为在安装过程中可能没有显示,还因为在安装甚至第一次运行过程中可能没有用户,或者提取rpm文件的机制可能根本不支持任何显示文本的方法或接受输入。
本质上,如果您必须这样做,最糟糕的方法是按照 Ignacio 的建议(Sun 就是这样做的),并创建一个没有此类限制的 RPM 文件,然后将其放入自解压文件中显示许可证、提示用户然后解开 RPM 的二进制文件。本着破坏用户体验的精神,您还需要一组类似 Sun 创建的指令:Linux 的 JRE RPM 安装。
当然,正确的方法是使用
License
字段并包含一个名为%doc
的文件,其中包含您的许可条款。这消除了“点击通过”步骤,这可能对你的律师来说是不可接受的,尽管它被广泛认为无论如何都是不可执行的。这是 RPM 指南中解决以下问题的部分:
请记住,用户对产品的第一印象可能是:
(来源:virtuatopia.com)
或这样:
(来源:flickr.com)
This is a bad idea for both technical and user-interface reasons.
Not only because there may be no display during install, but also because there may be no user during installation or even first run, or the mechanism for extracting the rpm file may simply not support any method to display text or accept input.
Essentially, if you have to do this, the least worst way is to do Ignacio suggests, which is what Sun do, and create a RPM file with no such restriction, then put it inside a self-extracting binary which displays the license, prompts the user and then unwraps the RPM. In the spirit of ruining the user experience, you will also require a set of instructions like these created by Sun: JRE RPM Installation for Linux.
The correct way of doing this of course is to use the
License
field and include a file as%doc
which contains your licensing terms. This does away with the 'click-through' step, which maybe unacceptable to your lawyers, although it is widely considered to be unenforceable anyway.This is the section of the RPM guidelines which addresses such things:
Remember, the first impression your user will get of your product could be either this:
(source: virtuatopia.com)
or this:
(source: flickr.com)
不要那样做;即使显示许可协议,也不能保证该软件包一定会被安装。将其放入显示执行协议的自解压存档中。
Don't do that; there's no guarantee that the package will be installed when there's even a display to show the license agreement. Put it in a self-extracting archive that shows the agreement on execute.