Installing Without Superuser Credentials

Micro Focus recommends that you install this product with superuser permissions. If, however, you need to perform a non-root installation, check the information below. The setup file supports installing into non-root owned directories.

Licensing considerations

  • Multiple users - on a machine that has multiple user accounts that need access to the product and licensing, you must install the product under a user ID that grants read, write, and execution permissions to all users.

    By default, most user account areas can only be accessed by the owner. In order for all of the users to be able to use the product and License Manager, the installation must be in an account whose $HOME directory can be accessed by all other users.

Performing a non-root installation

  1. Give execute permissions to the setup file:
  2. Run the installer with the -noroot command line argument:

    This installs the product in the default location, $HOME/microfocus/EnterpriseDeveloper, where $HOME should point to the top-level login directory for the current user.

    The product configuration files are stored in $HOME/microfocus/config, and the CAS regions are stored in $HOME/microfocus/es, by default.

After installing

Once the installation is complete, you need to run the cobsetenv script in order to set up your COBOL environment. To do this, execute the following command:

. $HOME/microfocus/EnterpriseDeveloper/bin/cobsetenv

In addition, on clean machines where licensing has not been installed before, or has not been installed as the root user, you must set the MFCES_INIT_LOCATION environment variable. By default, MFCES_INIT_LOCATION is set in cobsetenv within the installed product. You must also set it in any scripts which use the COBOL product or set the environment as follows:

MFCES_INIT_LOCATION=$HOME/microfocus/licensing/ces/bin/ces.ini
export MFCES_INIT_LOCATION

This provides the location of the ces.ini licensing configuration file in the non-root installation area for the COBOL Run-Time System.

You do not need to set MFCES_INIT_LOCATION on machines where licensing has been installed using the root user. On such machines, there are files in /opt/microfocus/licensing/bin and mfcesd, and the Autopass process is running as root. In this scenario, MFCES_INIT_LOCATION is commented out in cobsetenv and you do not need to update any of your scripts with the MFCES_INIT_LOCATION settings. The product installed in a non-root location uses the root install licensing.

Configuring ports

The /etc/services file for the registration of port 86 is owned by the root user and cannot be changed without superuser permissions.

You need to ensure that this file includes the mfcobol port entries. On most new operating systems, the entries are present.

However, on some operating systems these port entries might be missing. The setup file reports this issue before installing the product. To resolve it, you need to edit /etc/services manually in a text editor with root permissions and add the following two lines:

mfcobol		86/tcp	# Micro Focus Cobol
mfcobol		86/udp	# Micro Focus Cobol

Additional arguments

Specify -ESadminID="username", if you want to use the SOA functionality. When using the -noroot command-line option, the value of the -ESadminID username must be the current user ID you are running the installer as or the installer gives errors when updating the file permissions. If you need CAS and any other associated tools to run as a specific user, then you need to run the non-root installation as that user.

For non-default installation locations for the product and the product configuration files, use the -installlocation, - mfconfiglocation, and -CASrtDIR command line arguments. See Installation Options for details.

AutoPass service configuration

Installing the product without Superuser credentials does not create the required AutoPass service configuration file - MFAutoPass.service. A user with Superuser privileges must create this file (and the one detailed in MFCESD service configuration) in /usr/lib/systemd/system, and then start the service before anyone can license and use the product.

[Unit]
Description=Micro Focus AutoPass Licensing Daemons.
Documentation=http://supportline.microfocus.com

[Service]
Type=forking
ExecStart=<HOME>/microfocus/licensing/autopass/autoPassdaemon.sh start
ExecStop=<HOME>/microfocus/licensing/autopass/autoPassdaemon.sh stop

Restart=no

[Install]
WantedBy=multi-user.target

where <HOME> is the path to the home directory for the user that installed the product.

Important: Any users required to license and use the product must have access to this home directory.

Once the configuration file has been created, the service can be managed, with Superuser privileges, using the following commands:

systemctl reenable MFAutoPass  *> enables the service
systemctl start MFAutoPass     *> starts the service
systemctl status MFAutoPass    *> checks the service status

MFCESD service configuration

Installing the product without Superuser credentials does not create the required MFCESD service configuration file - MFCESD.service. A user with Superuser privileges must create this file (and the one detailed in AutoPass service configuration) in /usr/lib/systemd/system, and then start the service before anyone can license and use the product.

[Unit]
Description=Micro Focus AutoPass Licensing Daemons.
Documentation=http://supportline.microfocus.com
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=<HOME>/microfocus/licensing/ces/bin/startmfcesd.sh
ExecStop=<HOME>/microfocus/licensing/ces/bin/stopmfcesd.sh
Restart=no

[Install]
WantedBy=multi-user.target

where <HOME> is the path to the home directory for the user that installed the product.

Important: Any users required to license and use the product must have access to this home directory.

Once the configuration file has been created, the service can be managed, with Superuser privileges, using the following commands:

systemctl reenable MFCESD  *> enables the service
systemctl start MFCESD     *> starts the service
systemctl status MFCESD    *> checks the service status