Build / install Vespa

To develop with Vespa, follow the guide to set up a development environment on AlmaLinux 8 using Docker.

Build Vespa Java artifacts with Java >= 17 and Maven >= 3.6.3. Once built, Vespa Java artifacts are ready to be used and one can build a Vespa application using the bundle plugin.

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

See vespa.ai releases.

Container images

Image Description
docker.io/vespaengine/vespa
ghcr.io/vespa-engine/vespa
Container image for running Vespa.
docker.io/vespaengine/vespa-build-almalinux-8 Container image for building Vespa on AlmaLinux 8.
docker.io/vespaengine/vespa-dev-almalinux-8 Container image for development of Vespa on AlmaLinux 8. Used for incremental building and system testing.

RPMs

Dependency graph:

RPM overview

Installing Vespa on AlmaLinux 8:

$ dnf config-manager \
  --add-repo https://raw.githubusercontent.com/vespa-engine/vespa/master/dist/vespa-engine.repo
$ dnf config-manager --enable powertools
$ dnf install -y epel-release
$ dnf install -y vespa

Package repository hosting is graciously provided by Cloudsmith which is a fully hosted, cloud-native and universal package management solution: OSS hosting by Cloudsmith

Refer to vespa.spec. Build RPMs for a given Vespa version X.Y.Z:

$ git clone https://github.com/vespa-engine/vespa
$ cd vespa
$ git checkout vX.Y.Z
$ docker run --rm -ti -v $(pwd):/wd:Z -w /wd  \
         docker.io/vespaengine/vespa-build-almalinux-8:latest \
         make -f .copr/Makefile rpms outdir=/wd
$ ls *.rpm | grep -v debug
vespa-8.458.13-1.el8.src.rpm
vespa-8.458.13-1.el8.x86_64.rpm
vespa-ann-benchmark-8.458.13-1.el8.x86_64.rpm
vespa-base-8.458.13-1.el8.x86_64.rpm
vespa-base-libs-8.458.13-1.el8.x86_64.rpm
vespa-clients-8.458.13-1.el8.x86_64.rpm
vespa-config-model-fat-8.458.13-1.el8.x86_64.rpm
vespa-jars-8.458.13-1.el8.x86_64.rpm
vespa-libs-8.458.13.el8.x86_64.rpm
vespa-malloc-8.458.13-1.el8.x86_64.rpm
vespa-node-admin-8.458.13-1.el8.x86_64.rpm
vespa-tools-8.458.13-1.el8.x86_64.rpm

Find most utilities in the vespa-x.y.z*.rpm - other RPMs:

RPM Description
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-feed-client.jar - see vespa-feed-client