Build / install Vespa

To develop with Vespa, follow the guide to setup a development environment on CentOS 7 using Docker.

Building only Vespa Java artifacts with Java 11 and Maven installed:

$ export MAVEN_OPTS="-Xms128m -Xmx1024m"
$ ./bootstrap.sh java && mvn install

Once built, Vespa Java artifacts are ready to be used and one can build a Vespa application using the bundle plugin.

Docker images

vespaengine/vespa Docker image for running Vespa.
vespaengine/vespa-pipeline Docker image with supported versions of Maven and JDK for Vespa application compilation.
vespaengine/vespa-build-centos7 Docker image for building Vespa on CentOS 7.
vespaengine/vespa-dev-centos7 Docker image for development of Vespa on CentOS 7. Used for incremental building and system testing.

RPMs

Dependency graph:

RPM overview

Installing Vespa on CentOS 7:

$ yum install -y epel-release
$ yum install -y centos-release-scl
$ curl -o /etc/yum.repos.d/vespa-engine.repo https://github.com/vespa-engine/vespa/blob/master/dist/vespa-engine.repo
$ yum install -y vespa

Refer to vespa.spec. Build RPMs like:

$ build-vespa.sh 1.2.3
...
vespa-1.2.3-1.el7.x86_64.rpm
vespa-base-1.2.3-1.el7.x86_64.rpm
vespa-base-libs-1.2.3-1.el7.x86_64.rpm
vespa-clients-1.2.3-1.el7.x86_64.rpm
vespa-config-model-fat-1.2.3-1.el7.x86_64.rpm
vespa-debuginfo-1.2.3-1.el7.x86_64.rpm
vespa-jars-1.2.3-1.el7.x86_64.rpm
vespa-malloc-1.2.3-1.el7.x86_64.rpm
vespa-node-admin-1.2.3-1.el7.x86_64.rpm
vespa-tools-1.2.3-1.el7.x86_64.rpm
Find most utilities in the vespa-x.y.z*.rpm - other RPMs:
vespa-tools Tools accessing Vespa endpoints for query or document operations:
vespa-malloc Vespa has its own memory allocator, vespa-malloc - refer to /opt/vespa/etc/vespamalloc.conf
vespa-clients vespa-http-client-jar-with-dependencies.jar - see vespa-http-client