I am developing a cross-platform Java app for OS X, Windows, and Linux. It runs fine on Linux (currently packaged into a .sh file), but now I'm wondering how to distribute it after payment and update it when I make changes.

I'm aware that FOSS is typically distributed in a .rpm and .deb package, which provides a convenient way to update the app as well (in Linux mint, for instance, there is a unified software updater that makes use of these). But I don't know if these would be appropriate for paid software that I don't want users to install without paying for.

I know that paid software on Linux is somewhat rare, but It certainly does exist. So how is paid software typically distributed and updated on Linux?


We distribute our commercial software as .deb packages with our own Debian repository server. You can create and maintain the repository with the standard reprepro tool and you can then configure the web server that hosts the repository to require authentication for the *.deb packages. On the customer side, the credentials are supplied in the sources.list file:

cat /etc/apt/sources.list.d/your-company-name.list
deb http://customer-name:password@your-update-server.com/debian/ stable main non-free

Getting the web server properly configured so that it reads from a database which customer may download which package may require some work and Debian is not necessarily designed for this kind of thing, but it works extremely well for us (we're using this configuration since 2008).

| improve this answer | |
  • Excellent! If there is a tutorial or something that provides further information, I'd appreciate you linking to it. – Thunderforge Jan 31 '14 at 2:14
  • 3
    Except for the part where you're transmitting user logins over http rather than https. Dude, set up an SSL cert. – Shadur Jan 31 '14 at 5:50
  • @Shadur You're right, didn't really notice that. I'll talk to the guy who set that up to see if it's possible to use SSL or at least digest auth there. – Martin von Wittich Jan 31 '14 at 9:43

For my company we deliver the entire package via RPM on an ISO which anyone could download. However to use the software they must have a license which is purchased from us.

When they install the software they are asked to enter a Key that we send them. The installer then carries out a network check of the key which is encrypted along with the MAC address of the system they are installing to. We store the key and MAC together in a database so nobody else can use the same key, along with other customer information. They can reinstall as many times as they wish.

If the customer wishes to move the software to new hardware they simply contact us and we give them a new installation key while expiring the original.

It's a fairly robust system, but it's is a multi seat license so it works for our customers.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.