Linux FME Server Installation Checklist

Richard Mosley
Richard Mosley
  • Updated

FME Version

  • FME 2022.0

Introduction

FME Server requires some preparation before an installation. This article will help with checklists for Offline and Online installations and silent installation options.

Please be advised that these instructions were tested with FME Server 2022 Express installation hosted on Ubuntu 20.04.4 LTS 

 

Manual Online installation

1. Start a bash shell session as the root user. 

2. Update the system packages. Example:

apt update && apt upgrade


3. Download and install the dependencies for the FME Server component of the installation. Example:

sudo apt-get install zip unzip


4. Download the FME Server installer package from the FME Downloads webpage using the command wget <FMEServerInstallerPackageLinkAddress>. Example:

wget  https://downloads.safe.com/fme/2022/fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run


5.  Assign execute permission to the installer package. Example:

sudo chmod +x fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run


6. Run the Installer

./fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run 

 

Manual Offline installation

Following is a list of actions to perform before an offline installation-

1. Start a bash shell session as the root user. 

2. Download and install the dependencies for the FME Server component of the installation. Example:

sudo apt-get install <package-name>


3. Install Zip and Unzip

sudo apt-get install zip & unzip


4. Install Pearl 

sudo apt-get install perl


5. Postgresql [If your deployment architecture includes the PostgreSQL database server provided with the installation]

sudo apt-get install postgresql


6. Nginx [FME Server 2022 on Linux includes an NGINX reverse proxy that allows easy SSL configuration and the ability to choose ports under 1024 without root permission. HTTPS is configured on the NGINX reverse proxy rather than the web application server.]

sudo apt-get install nginx


7. Download the FME Server installer package from the FME Downloads webpage using the command wget <FMEServerInstallerPackageLinkAddress>.
For Example-

sudo wget  https://downloads.safe.com/fme/2022/fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run


8. Assign execute permission to the installer package.

sudo chmod +x fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run


9. Extract all files from the FME Server installer package with flags --noexec and --keep. These flags create a folder “fme-server” in the current directory. This folder will contain the contents of the FME Server installer, including the FME Engine .deb or .rpm package. Example:

sudo ./fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run --noexec --keep


Please note: Listing all FME Engines dependencies can be achieved by running a shell script if preferred.

10.  Get dependencies for the FME Engines component of the installation. This is done by running the default Debian package manager to show information about the .deb package found inside the “fme-server” folder mentioned above. Example:  

dpkg -I fme-engine-2022_2022.1.0.0.22618~ubuntu.20.04_amd64.deb

The command should provide the third-party dependencies listed under “Depends:”.

11. Download and install all these dependencies one at a time or all at once using 

sudo apt install libboost-chrono1.67.0

or

sudo apt install libboost-chrono1.67.0 libboost-filesystem1.67.0  libboost-iostreams1.67.0 …………


12. FME Server installer can now be run on an offline host to complete installation. Example:

./fme-server-2022.1-b22618-linux-x64~ubuntu.20.04.run

 

Listing all FME Engines dependencies using Shell Script

Please see below a sample shell script that can be used to list all the third-party dependency packages for the FME Engines component of the installation.
This script should be saved as a .sh file under the “fme-server” folder, should be provided execute permissions and then run. You will be prompted to provide the .deb file.

Note of caution- Although some testing has been done, this has not been thoroughly tested by our QA team.  It is therefore recommended that a customer looking to do this ensures they have tested the reconfiguration in a non-production environment to ensure all aspects of FME Server they require to function do so correctly.
 

#!/bin/bash
#ask user for deb file
read -p “Please_enter_the_deb_file:” file
sudo apt install postgresql -y 2>> errors.txt
sudo apt install nginx -y 2>> errors.txt
sudo apt-get install zip unzip -y 2>> errors.txt
sudo apt-get install perl -y 2>> errors.txt
#getting all package info
dpkg -I $file> package.txt
#Retrieving data after “Depends:” till end of line
awk '/Depends/' package.txt> OnlyDependencies.txt 2>> errors.txt
#Removing the word “Depends:”
sed 's/Depends://g' OnlyDependencies.txt> RemovedthewordDepends.txt 2>> errors.txt
#Splitting each dependency package name to a separate line
awk '{for(i=1;i<=NF;i++)
if(match($i,",")>0)
line=line $i"\n";
else line=line $i;
sub("^\n","",line);
print line}' RemovedthewordDepends.txt> SplitInSeperateLines.txt 2>> errors.txt
#Removed all the commas at the end of the package name
sed 's/,//g' SplitInSeperateLines.txt> RemovedCommas.txt 2>> errors.txt
#Removed all the additinal info within brackets
sed 's/([^()]*)//g' RemovedCommas.txt> RemovedtheContentWithBrackets.txt 2>> errors.txt

 

Distributed Installations Checklist

Distributed Installation can run the same method online and offline. You, however, have to make sure that you can reach the database and FME Server File Share before installing. You will need to set up the FME Server User and create a mount for the file share.  Please see this article on Linux Mounting Options
 

Silent Installation Parameter Overview

This list provides all the required Parameters for different installations and a few helpful parameters. The documentation provides information on these parameters.
 

Linux Required For Description
FMESERVERHOSTNAME Optional Host name of the machine that runs the FME Server Core.
INSTALLDIR All The FME Server install directory.
FMESERVERSHAREDDATA Optional The path to the FME Server System Share directory, where FME Server stores Repositories and Resources files. Path names are case-sensitive.
DATABASETYPE Distributed Database The database server type that will be used for the FME Server Database. Possible values are Default, MSSQL, Oracle, PostgreSQL. Default assumes the PostgreSQL database that is included with the FME Server installer and located on the same machine.
DATABASEHOST Distributed Database The host that the database is on. This should only be specified if DATABASETYPE is not Default.
DATABASEPORT Distributed Database The port to connect to the database. This should only be specified if DATABASETYPE is not Default.
INSTANCENAME MSSQL Distributed Database If DATABASETYPE is MSSQL, the SQL Server instance name to use for connecting to the database, instead of DATABASEPORT.
DATABASECONNECTIONSTRING Distributed Database / Optional The JDBC connection string for connecting to the FME Server Database.
ORACLESID Oracle Distributed Database The SID for the Oracle database. Must be specified only if DATABASETYPE is Oracle.
JDBCDRIVER Distributed Database / Optional If your database requires a JDBC driver that Safe does not provide, specify the full path to it here, and it will be copied to the appropriate place in the install directory.
DATABASEUSER Distributed Database The FME Server Database user account name. This property applies regardless of the value specified by DATABASETYPE.
WARNING: If DATABASETYPE is Default, do not specify postgres. This name corresponds to the PostgreSQL master user. If the corresponding passwords do not match, the database will not install.
DATABASEPASSWORD Distributed Database The password for the FME Server Database user name.
Note: The password for the FME Server Database user account is encrypted in FME Server installation files.
SERVLETTYPE Distributed Web Application The type of Application Server (servlet engine) you will use with FME Server. Possible values are Default, Apache (Tomcat), and Oracle (WebLogic). Default installs the Apache Tomcat servlet provided with the FME Server installer.
Note as of FME 2023.1, Oracle WebLogic is no longer available as an application server. 
WEBSERVERHOSTNAME Distributed Web Application The host on which the servlet engine is installed.
SERVLETPORT Distributed Web Application The port that the servlet engine host uses or that the built-in Apache server uses. If not specified, the installer checks ports 8080-8085, 80 and uses the first one that is not in use.
WEBAPPSDIR Distributed Web Application If an Apache Tomcat servlet is already installed on the machine, the path to the webapps directory for the servlet engine, for installing WAR files. This is a necessary property for distributed web applications. This is a necessary property for distributed web applications.
SHAREDTOMCATLIB Distributed Web Application If an Apache Tomcat servlet is already installed on the machine, the path to the lib directory for the servlet engine, for installing JAR files. This is a necessary property for distributed web applications.
FIRSTLOGINCHANGEPASSWORD Optional Do not prompt the user to change the SuperUser passoword after first logon.
NODENAME Engine Only If you are installing only the FME Engine component, use this property to advertise a fully-qualified domain name (FQDN) for the machine hosting the FME Engine to FMESERVERHOSTNAME. Specify a FQDN that resolves to the IP address of the machine via DNS.
PGDATADIR Optional Express If DATABASETYPE=Default, the directory to contain the data for the FME Server PostgreSQL database.
ADMINUSERNAME Optional SuperUser Name
ADMINUSERPASSWORD Optional SuperUser Password

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.