The newest Python 3 version available in the CentOS package manager is Python3.6.8, but Workflows needs at least Python 3.11.1 to be fully functional, so we will neeed to install the package from the source code.


Firstly we must install the required libraries (some of them may be already installed and up-to-date):


sudo yum -y install epel-release

sudo yum install wget make cmake gcc bzip2-devel libffi-devel zlib-devel libcurl-devel python-devel openldap-devel


Next we manually mark the group "Development Tools" as installed:


sudo yum groups mark install "Development Tools"


We can check it with:


yum group list


And also see the packages included in the "Development Tools" group with:


yum group info "Development Tools"


Building Python3.11 requires openssl 1.1.1 or newer. The version provided in CentOS repositories is old, so we have to install it also from the source code.


We must download and extract the package, then navigate into the extracted folder:


wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz 

If we find trouble with the certificate validation we can skip it by adding:

wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz  --no-check-certificate

tar xvf openssl-1.1.1t.tar.gz

cd openssl-1.1.1t


Before compiling we must configure the paths for openssl 1.1.1, such as:


./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl


Then we make the build:


make

sudo make install


Afterwards we download and extract the source package for python3.11.1:


wget https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tgz

tar xvf Python-3.11.1.tgz


Navigate into the extracted folder and configure the build (each line corresponds to individual commands to be executed):


cd Python-3.11.1 

./configure CFLAGS=-fPIC CXXFLAGS=-fPIC

LDFLAGS="${LDFLAGS} -Wl,-rpath=/usr/local/openssl/lib" ./configure --with-openssl=/usr/local/openssl

make

sudo make install


Now we can check that Python3.11 has been installed, and that it loads properly the OpenSSL library version:


python3.11

>> import ssl

>> ssl.OPENSSL_VERSION


Finally, before Workflows installation, we must declare the environment variable adding to /home/mistika/.bashrc the lines:


export MISTIKA_PYTHON="/usr/local/"

export MISTIKA_PYTHON_BIN_DIR="/usr/local/bin"


At this point we can continue with the installation of Mistika Workflows, just download the installer, make it executable, and run it (as normal user! NOT root)