I want to publish some software for different Linux distributions, using the regular Linux packaging formats (rpm, deb, yast, etc). My package will require a click-thru license agreement. Which Linux tools and package formats support a license in the package which is shown to the user before installing the software?
问题:
回答1:
.deb definitely does; the sun-java* packages from Debian non-free have one.
Keep in mind that on Linux (and other Unix systems), often an administrator installs the software, but different people actually use it. You may want to show your click-through license the first time each user runs the software.
(Well, actually, dpkg is text-based, so its not click-through, but rather type-through, but...)
回答2:
As derobert said, on Unixy systems it's often not the end user who installs the software, so asking for the installer/admin to agree to the license may not be what you want (depends on the purpose of the software and the license text, I guess).
Click-through (or shrinkwrap which is slightly different but essentially the same principle) licenses have been a point of contention for years, as while there is an 'acceptance' by the user it's hard to prove that it was the user who accepted the license, and that the user actually read what was presented to them before using the software.
Take for example getting your lcoal mom+pop computer repair store to install/upgrade Windows; they usually click through the license pages so they can install all the other crap software they bundle onto the PC and the actual owner doesn't get a chance to read or agree to the license.
It's worth looking up the legality of that type of license in your jurisdiction and the jurisdiction of the users you intend to target.
I wouldn't rely on package management to do this for you either. I'd definitely have it as part of your application code. You could get a post install script for pretty much any package manager to run the click-through program if needed, but I think it's better to run it as a per-user thing.
回答3:
An RPM's installation script should not be used to prompt for questions because it there is no guarantee the code is running in a script. (it could be installed from the GUI and also people don't want the script to pause in a large installation transaction). You can name the license agreement the RPM uses and show it to users on either first run, or from their dowwnload site or by putting notes in the description.
回答4:
You probably do NOT want to do this via the packaging mechanism, there is no guarantee of the click though. What you might consider instead is presenting such a license the first time that the application is run. Don't rely on curses based window prompts, some package installers are just going to redirect them away and your install will just hang forever.
Some applications do this now to assert a trademark policy, others go a little deeper. The majority of Linux users do not like EULA agreements, but I'm guessing anyone installing your software is going to expect one anyway.