Installing extra OS packages

Install extra apt packages on a TurboStack host with os_extra_packages - from the Advanced tab or in YAML, including dynamic PHP packages.

TurboStack manages your servers for you, so you do not have root access to run apt install yourself. To add extra operating-system packages - for example an extra PHP extension - you declare them in your host configuration with os_extra_packages, and TurboStack installs them for you. Because the list lives in your configuration, the same packages are reproduced when you set up similar servers later.

Where to set it

You can set os_extra_packages in two ways:

  • Advanced tab - open the host, go to Advanced > Operating System > OS Extra Packages, and pick from the common packages offered. See Advanced settings.

  • Source (YAML) view - for any package that is not in the list, add it directly as YAML. See The Source (YAML) view.

The Operating System panel on the Advanced tab, with the OS Extra Packages selector
The Operating System panel on the Advanced tab, with the OS Extra Packages selector

os_extra_packages is a list (it must be an array, not a single value). It can be set on a host, or on a group to apply to every member host.

os_extra_packages:
  - acl

Find the exact package name

Packages are installed with Debian's apt package manager, so you need the exact apt package name. Connect over SSH and search for it (this also shows whether it is already installed):

apt search <packagename>

For example, to find PHP extension packages for PHP 8.2:

apt search php8.2

Copy the exact names into your configuration:

os_extra_packages:
  - php8.2-amqp
  - php8.2-ssh2
  - php8.4-dom

Install packages for your active PHP version

If your configuration defines php_main_version, you can reference it so the right PHP packages are installed automatically when you change versions:

php_main_version: "8.2"
os_extra_packages:
  - php-amqp
  - php-ssh2

Apply and verify

  1. Save & Publish the host. TurboStack installs the listed packages (apt, kept at "present") while applying the configuration - see Publishing changes.

  2. Verify over SSH that a package is installed:

    dpkg -l <packagename>