Strus installation guide
Packages
Packages are built on the OpenSUSE Build Cluster from the master branch. Unfortunately, there is no releasing yet a download page to fetch packages of a specific release yet. Here is a list of links to the packages:
- strusBase
- strus
- strusAnalyzer
- strusTrace
- strusModule
- strusRpc
- strusPattern
- strusVector
- strusUtilities
- strusBindings (Python)
- strusBindings (Java)
- strusBindings (PHP)
Packages that failed to build are not visible. You can get an overview
on the status of the latest build
here.
The bindings package is on many platforms marked as failed, but it might still be available
for your purpose. The package is split into a variant for each binding language. You might be able
to install the package strus-python, even if strusbindings is marked as failed on
the OpenSUSE build cluster. This can, for example, be the case because the Java build
failed but Python succeeded.
The vector and the pattern package require a newer compiler than available
on the build cluster or fail due to missing support of 3rdParty packages.
Start it from a docker image
The Strus Docker images are out of date by far but will be updated soon.
There are 4 docker images available based on ubuntu 14.04:
- patrickfrey/strus-ub1404-env: strus search engine prerequisites (build tools, 3rdParty libraries) for ubuntu.
- patrickfrey/strus-ub1404: strus search engine libraries and command line tools (without language bindings).
- patrickfrey/strus-ub1404-bind: strus search engine application development base (strus-ub1404 plus language bindings).
- patrickfrey/strus-ub1404-nginx: strus search engine service using Nginx as the web server.
- patrickfrey/strus-ub1404-pysrv: strus search engine server implemented using tornado.
Clone from Github
There exists a Github project strusAll for simiplifying out of source builds of Strus. You can clone it with
git clone git@github.com:patrickfrey/strusAll.git
You can also clone the projects one by one from Github:
git clone git@github.com:patrickfrey/<projectname>.gitThe following projects (substitute for <projectname>) are part of the strus universe: strusBase, strus, strusAnalyzer, strusTrace, strusModule, strusRpc, strusPattern, strusVector, strusBindings, strusUtilities.
3rd party dependencies
Follow the instructions in INSTALL.3rdParty of every strus project for installing
the prerequisites.
Hier is a list with the most important 3rd party software you need to install for strus.:
- boost (>= 1.53)
- leveldb (needed by strus)
- gperftools(needed by leveldb)
- libunwind (needed by leveldb)
- snappy (needed by leveldb)
- PHP (needed by strusBindings when building with -DWITH_PHP="YES")
- Python version >= 2.7 (needed by strusBindings when building with -DWITH_PYTHON="YES")
Build the software
The build system is CMake. Go into the top level directory
of the strusAll project and execute the instructions in INSTALL (for Linux), INSTALL.FreeBSD,
INSTALL.OpenBSD or INSTALL.OSX depending on your platform.
If you build the procects separately you have to do this for each project.
The projects will by default be installed in the default location for utilities
(On Ubuntu in /usr/local).
Respect the order implied by dependencies if you build the projects separately.
The projects have due to dependencies to be built and
installed in the following order (projects on the same line can be built in reversed
order too because they have no build dependencies to each other):
- strusBase
- strus, strusAnalyze
- strusTrace
- strusModule
- strusRpc
- strusPattern, strusVector, strusBindings, strusUtilities