Gazebo Jetty Server Only installation for Ubuntu

A long-standing request from the Gazebo community has been the ability to install Gazebo without pulling in Qt and other GUI dependencies — particularly useful for CI pipelines, headless servers, and Docker containers ( gz-sim8-release#8). Starting with Gazebo Jetty, this is now possible with the new gz-sim10-server package version 10.1.1-2, available today in the stable OSRF repositories.

The New Package

gz-sim10-server ships the standalone gz-sim-server binary along with all non-GUI simulation plugins, rendering engines (needed for sensor simulation), and the full sensor suite — everything you need to run headless simulations. What it doesn’t include: Qt libraries, GUI plugins, or any graphical interface components.

The Server executable

The server binary is a standalone (pure C++) executable that does not go through the gz ruby wrapper (gz-sim#2809).

It is installed at /usr/libexec/gz/sim10/gz-sim-server, which is not in PATH by default. The familiar gz sim -s command is not available in the server-only installation since it requires the full gz-sim10-cli package. To run simulations, invoke the binary directly:

/usr/libexec/gz/sim10/gz-sim-server my_world.sdf

Package Comparison

Metric gz-sim10-server gz-jetty
Total packages installed 596 993
Gazebo packages 85 124

That’s ~40% fewer total packages.

How to Install

Fresh install on Ubuntu Noble:

sudo apt-get install gz-sim10-server

Existing Users and Backward Compatibility

If you already have gz-jetty or libggz-sim10-dev installed, the underlying packages have been reorganized into GUI and non-GUI splits. A plain apt-get upgrade will not automatically install the new split packages — you need to use one of these methods:

# Option 1: Let apt handle the full transition
sudo apt-get dist-upgrade
# Option 2: Explicitly install the new packages
sudo apt-get install gz-sim10-cli

Tip: apt-get upgrade installs new versions of existing packages but never installs new packages or removes old ones. apt-get dist-upgrade will install and remove packages as needed to complete the upgrade — which is required when the dependency structure changes, as it does here.

After the transition, all GUI and server components remain installed — there is no change in functionality. The split is purely an internal packaging reorganization; full-installation users will continue to have the exact same set of features as before.

Links

4 Likes

Great news!

This is what I use for regular system updates. However, I’ve noticed that many people are scared of this command, probably because of its name, which resembles “distro upgrade”. But don’t be scared: this never updates the version of Ubuntu! (that would be done by do-release-upgrade, but there are very few people who dare running it).

2 Likes