End User Installation
When your customer receives your product, they need to do a few things in order to set up the licensing. If they are familiar with popular license managers, these installation steps should be quite familiar.
The steps the license administrator needs to perform to install licensing, in addition to installing your application, are:
Install license server binaries
Install license file
Start license server (if you are using floating licenses)
Set up environment for users to find the license server when running your application.
In addition, your users would also want to know:
Where to find the license administration tools.
How to set up an options file for the license server. This step can be accomplished by providing them with the RLM License Administration manual.
Reprise Software’s Recommended Software Installation steps
Installing your product with RLM should be very straightforward, and should require no configuration of environment variables, etc.
Warning
Prior to v15.1, Reprise strongly recommended that you never install a license server as a privileged user (root or administrator).
Overview:
On the client side, i.e., on the machines where your application is going to run, place the license file in your product hierarchy. For nodelocked licenses, this should be the actual, signed license file, and nothing needs to be done to this license file. For floating, this license file will be used only to locate the license server host.
If your customers are primarily running on single network segments, you do not need to install license files on the client nodes, since the client will broadcast to find the license server.
Note
This will not work if the client and server are located on different sides of a router, however, for small installations, the broadcast will save you having to configure license files on all client nodes.
If you ship floating licenses, install the server binaries and license file on the server node. The server license file doesn’t need to be modified.
Nothing in this set of recommendations requires the use of environment variables, and the install-time editing of license files is kept to a minimum (No editing of license files for nodelocked licenses, and only the server hostname needs to be set on the client side for floating licenses).
Details:
During development:
Establish a directory in your installed product tree for license file(s). This could be the same directory where your product is installed.
Pass the directory from the step above as the first argument to rlm_init().
When you ship a nodelocked license:
If you are shipping uncounted or single node-locked licenses, put the actual licenses into the license file. Install in the default directory. You’re done.
When you ship a floating license:
If you are shipping floating licenses, use a single HOST line in the license file for the client side. Use the default RLM port (5053) - which means you do not need a port number in this license file, and fill in the hostname with the name of the server computer at installation time. This license file should look like this:
HOST server-hostname
Note
You can skip this step if you ship exclusively to small customers running on single-segment networks).
On the server node, place the rlm binary, your ISV settings file (or ISV server binary), and the license file in a directory. This license file should have the real, signed licenses. The server hostname in this file can be “localhost”, meaning that it doesn’t have to be edited by the license administrator. The server license file’s first two lines should look like this:
HOST localhost hostid ISV your-isvname
By configuring the license file this way, it does not need to be edited by your customer. These lines tell RLM to:
Use the default port (5053)
Use the ISV server settings or binary from the same directory as the rlm binary
Include all your signed LICENSE lines in this file as well.
Start the rlm server from the directory in the step above
If your customer already has another RLM server running:
Install your ISV settings or server binary and the license file in the same directory as the other product’s copy of the server binaries and license files, and do a “reread” operation on the running rlm. That’s it, however:
If your version of RLM is newer than the installed version, update the installed version to your version, then shut down the running rlm and start the new one.
If you ship new, additional licenses to your customer:
Put the new license file in the same directory as the old one. If they are nodelocked licenses, put them on the client system. If they are floating licenses, put them into the directory with your other licenses and do an rlmreread on the license server.
Special note for MAC systems
On Mac systems, the RLM temporary directory changed in v14.1 from /var/tmp to /Library/Application Support/Reprise. See Appendix H - RLM Temporary Files for more information. One implication is that while this directory was writable in older macOS versions, it is no longer writable (at least on Catalina, and possibly on some earlier versions). So you will need to add a step to your installation procedures on macOS, to create /Library/Application Support/Reprise and set it to mode 777. If you do not do this, and the directory doesn’t exist or is unwritable, you will get the RLM_EH_NOTEMPDIR error from rlm_init(), and when rlm is started, it will log this message and exit:
% rlm
The RLM temporary directory:
/Library/Application Support/Reprise
could not be created.
Please create this directory with the following 2 commands:
sudo mkdir "/Library/Application Support/Reprise"
and
sudo chmod 777 "/Library/Application Support/Reprise"