Run these commands as root:
yum install python3
yum install python3-devel
Run these commands as schedulix user:
Environment set up:
export INSTALLDIR=/usr/bin/schedulix/software
export ZOPE5VENV=Zope5
export ZOPE5DIR=$INSTALLDIR/$ZOPE5VENV
cd $INSTALLDIR
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ( work around needed because environment wasn't setting up pip in venv correctly)
python3 -m venv --without-pip $ZOPE5VENV
source /usr/share/schedulix-2.9/software/Zope5/bin/activate
python3 get-pip.py
cd $ZOPE5DIR
bin/pip3 install -U pip wheel
bin/pip3 install zope
bin/pip3 install Products.ExternalMethod
bin/pip3 install Products.Sessions
bin/pip3 install Products.SiteErrorLog
bin/pip3 install Products.PythonScripts
bin/pip3 install Paste
$INSTALLDIR Directory looks like this:
Jun 12 2019 Zope
Oct 27 15:19 Zope5
Oct 27 15:19 .
Oct 27 16:50 ..
Create a Zope instance for schedulix!Web:
cd $INSTALLDIR
export ZOPE5INSTANCE=/usr/bin/schedulix/schedulixweb4
$ZOPE5DIR/bin/mkwsgiinstance -d $ZOPE5INSTANCE \ -u sdmsadm:<password>
Start and stop the server:
$ZOPE5DIR/bin/runwsgi -v $ZOPE5INSTANCE/etc/zope.ini
Pressing Strg-C or clsing the terminal window will stop the instance again.
Add zope5 directory:
cd $BICSUITEHOME
download the zope4 folder from https://github.com/schedulix/schedulix/tree/v2.9/zope4
(rename to zope5)
upload zope5 folder to /tmp
cp -R /tmp/zope5 .
$BICSUITEHOME Directory looks like this for zope:
May 30 2019 zope
Jun 12 2019 schedulixweb
Oct 27 16:50 zope5
Oct 27 18:17 schedulixweb4
Set up zope5 extensions:
cd $ZOPE5INSTANCE
mkdir Extensions
cd
ln -s $BICSUITEHOME/zope5/Extensions/*.py .
cd ..
ln -s $BICSUITEHOME/zope5/BICsuiteSubmitMemory
$ZOPE5DIR/lib/python3*/dist-packages/Products
ln -s $BICSUITEHOME/zope5/StringFixer
$ZOPE5DIR/lib/python3*/dist-packages/Products
mkdir import
cd import
ln -s $BICSUITEHOME/zope5/import/SDMS.zexp .
cd $ZOPEINSTANCE/etc
mv zope.ini
zope.ini.$$;
sed
's/^\(host[ ]*=[ ]*127.0.0.1\)/# \1/
s/^\(^port[ ]*=[ ]*8080\)/# \1/i
/port[ ]*=[ ]*8080/a listen = *:8080' < zope.ini.$$
> zope.ini;
$ZOPE5INSTANCE Directory looks like this:
Oct 27 16:54 Extensions
Oct 27 16:55 import
Oct 27 16:59 etc
Oct 27 18:08 var
Oct 27 18:17 .
Oct 27 18:19 bin
Links looks like this:
Extensions:
sdms.py -> /usr/bin/schedulix/zope5/Extensions/sdms.py
myeval.py -> /usr/bin/schedulix/zope5/Extensions/myeval.py
bicsuite_tx.py -> /usr/bin/schedulix/zope5/Extensions/bicsuite_tx.py
Import:
SDMS.zexp -> /usr/bin/schedulix/zope5/import/SDMS.zexp
for ../Zope5/lib/python3.8/dist-packages/Products:
BICsuiteSubmitMemory -> /usr/bin/schedulix/zope5/BICsuiteSubmitMemory
StringFixer -> /usr/bin/schedulix/zope5/StringFixer
Start the server again
$ZOPE5DIR/bin/runwsgi -v $ZOPE5INSTANCE/etc/zope.ini
Follow the steps on page 33 of the installation guide to set up Zope: http://www.schedulix.org/de/Downloads/installation_os_en-2.9.pdf
bin/pip3 install python-ldap
It failed to run with this error and I found that AccessControl had deprecated a module that was being imported:
Error:
File "/usr/share/schedulix-2.9/software/Zope5/lib64/python3.8/dist-packages/Products/RemoteUserFolder/RemoteUserFolder.py", line 58, in <module>
from AccessControl.Role import RoleManager, DEFAULTMAXLISTUSERS
ImportError: cannot import name 'RoleManager' from 'AccessControl.Role' (unknown location)