This page provides general configuration and troubloshooting information for PGX as an onprem artifact. Keep in mind that packaging may vary depending on the product that embeds PGX, always refer to the specific product documentation. Configuration instructions for more advanced usage models, which include running PGX as a server, can be found here.
The requirements for PGX on Oracle Linux (x86_64), on which PGX is actively tested, are the following:
libibverbs.socontains the proper extensions, run the following command
objdump -T <path-to-libibverbs.so>/libibverbs.so | grep "_xrc_", which will display something if and only if you have the proper extensions). You can install a version of the libibverbs library containing the proper extensions as part of the
oracle-ofed-releasepackage from the
To check existing instances of a library (e.g.,
libstdc++.so.6) on your system, you can use the following commands:
# install 'mlocate' package in case the commands below does not work sudo updatedb locate libstdc++.so.6
To verify that an instance of a library has the minimum required symbol versioning information mentioned above, e.g.,
CXXABI_1.3.5 for the
libstdc++.so.6 library, you can use the following commands:
strings /path/to/libstdc++.so.6 | grep -x GLIBCXX_3.4.19 strings /path/to/libstdc++.so.6 | grep -x CXXABI_1.3.5
If no line is returned, then the library does not support the minimum required symbol versioning information. In this case, you need to get the required shared libraries with at least the minimum required symbol versioning information.
You can use your Linux distribution's package manager and software repositories to search and install the required shared libraries. Alternatively, you can look for newer versions of the shared libraries possibly brought in by other software, or you can build the shared libraries from sources. Please note that the shared libraries must have the minimum symbol versioning information mentioned above.
Specifically for the
libgomp.so.1 shared libraries, you can either update
the system's default GCC to version 4.8.2 (or newer) or, if an official update is not
available, manually upgrade the C++ libraries.
Once you have the newer libraries somewhere in the system, either in some directory discovered via the
command or in
/usr/local/lib64, you can then simply set your
LD_LIBRARY_PATH to point
to the directory containing the shared libraries before starting PGX:
To avoid setting the
LD_LIBRARY_PATH after every login, you can add the command above to your
This section describes the minimum steps required to install and run PGX in local shell mode, which is suitable for quickly testing PGX's features but not for a production environment. Please see the other usage modes to install PGX for a production environment.
Install the Oracle JDK 8, if it is not already on your system. Refer to your system administrator, or follow these instructions to install:
JAVA_HOMEenvironment variable points to the JDK8 home directory, e.g.
Unpack the downloaded zip file into a directory of your choice. For example,
unzip pgx-20.2.2-server.zip -d /opt/pgx.
[Optional] You can then verify that PGX boots up by starting it in local shell mode, by launching the PGX Shell (the path to the executable may vary according to the product packaging):
cd $PGX_HOME ./bin/pgx-jshell
See our troubleshooting section if you encounter problems.
Make sure you have Python 3 installed (Python 3.5+ recommended)
python3 -m pip install <path-to-zip>
python3 -c "import pypgx; help(pypgx)"