Deb packages are supplied for download on the main SOFA website. To cater to other flavours of Linux, a tar.gz is also provided. Inside, you will find README.txt and INSTALL.sh.
The process is quite simple and has been achieved in two very different distros. SOFA works on Fedora 14:
and openSUSE 11.3:
This page is the go-to place for information on how to successfully install SOFA on non-Ubuntu Linux systems. For direct discussion, please post at SOFA Statistics google discussion group.
And if you manage to get SOFA working on other distros please email me (grant@sofastatistics.com) the relevant package details etc and a screen-shot (preferably one which reveals the distro involved).
NOTE to self - keep README.txt up-to-date in /home/g/projects/SOFA/debmaker/KEEPME
UPDATE - now using python-psycopg2 instead of python-pygresql
UPDATE - now need some others to enable exporting of images. And changed from urllib to requests. See Ubuntu details below:
In Ubuntu SOFA now requires:
Depends: python (>= 2.6.2), python-wxversion (>= 2.8.9.2), python-wxgtk2.8 (>= 2.8.9.2), python-numpy (>= 1:1.2.1), python-mysqldb (>= 1.2.2), python-psycopg2 (>= 2.0), python-matplotlib (>= 0.98.5.2), python-webkit (>= 1.0.0), python-xdg (>= 0.15), wkhtmltopdf (>= 0.9.9), ghostscript (>= 9), pdftk (>= 1.44), python-pypdf (>= 1.12), imagemagick (>= 7:6), python-pythonmagick (>=0.9), python-requests
For other distros there will need to be a process of finding packages that seem right, trying, and adding more if necessary. It certainly should be possible to get SOFA working on the major distros. Please report back if you succeed so others can benefit.
Thanks to Daniele La Prova for the following which he used as sofastats-dependencies-fedora.sh:
#! /bin/bash
sudo dnf install -y python3-wxpython4* python3-PyPDF2 python3-PyMySQL python3-psycopg2 python3-openpyxl python3-matplotlib wkhtmltopdf
In Fedora 14 I installed the following successfully for older versions of SOFA - :
A friend using Fedora 17 needed
In openSUSE 11.3 I installed the following successfully AFTER I had added the community devel:languages:python and education repositories:
Make a launcher with the following details:
You can run sofa from the command line with a single command sofastats (assuming you ran INSTALL.sh). If you want to set it up manually, details are in the Appendix:
When SOFA is run, it checks to see if the user has a sofastats folder and adds it if they don't e.g. /home/username/Documents/sofastats. It also make a sofastats_recovery folder.
If you are able to get SOFA to launch at all, but there is a problem of some sort, look at the output.txt file in your /home/username/Documents/sofastats/_internal folder. It may be, for example, that you forgot to install matplotlib.
Make a text file called runsofastats.sh with the following
#! /bin/bash python /usr/local/share/sofastats/start.py
And save it e.g. to your home folder. If bash is not located in /bin/bash on your system, use the command
which bash
to find it.
Then make a symlink to it located in /usr/local/bin (NB give everyone rights to run it)
su root ln -s /home/username/runsofastats.sh /usr/local/bin/sofastats chmod a+x /usr/local/bin/sofastats
Now you can run SOFA Statistics from the command line by typing in
sofastats
Here is where things should go during installation (in Ubuntu it is /usr/share/pyshared/sofastats):
/usr/local/share/sofastats /usr/local/share/sofastats/boomslang /usr/local/share/sofastats/css /usr/local/share/sofastats/dbe_plugins /usr/local/share/sofastats/googleapi /usr/local/share/sofastats/googleapi/atom /usr/local/share/sofastats/googleapi/gdata /usr/local/share/sofastats/googleapi/gdata/docs /usr/local/share/sofastats/googleapi/gdata/oauth /usr/local/share/sofastats/googleapi/gdata/spreadsheet /usr/local/share/sofastats/googleapi/gdata/tlslite /usr/local/share/sofastats/googleapi/gdata/tlslite/integration /usr/local/share/sofastats/googleapi/gdata/tlslite/utils /usr/local/share/sofastats/images /usr/local/share/sofastats/_internal /usr/local/share/sofastats/locale /usr/local/share/sofastats/locale/gl_ES /usr/local/share/sofastats/locale/gl_ES/LC_MESSAGES /usr/local/share/sofastats/projs /usr/local/share/sofastats/reports /usr/local/share/sofastats/reports/sofa_report_extras /usr/local/share/sofastats/scripts /usr/local/share/sofastats/vdts/ /usr/local/share/sofastats/xlrd/
In the following example, I downloaded the sofa source code into the Downloads folder in Fedora 14.
Then extract contents of sofastats_1.1.5.tar.gz into the Downloads folder.
The next lot of commands were performed as root (NB the /* after sofa.main)
su root
cd Downloads/sofa/sofastats_1.1.5 cp -r sofastats /usr/local/share cp -r sofa.main/* /usr/local/share/sofastats cp runsofastats.sh /usr/local/share/sofastats
NB nothing will work without the dependencies installed. Running:
python /usr/local/share/sofastats/start.py
will return a traceback because wxversion or whatever isn't available. So the next step is installing the dependencies.
After installing wxPython, but before adding the other dependencies, running sofa prematurely will result in a message about a problem with the first round of local importing.