Skip to content

APT repository

The Frostyard APT repository serves the .deb packages that Frostyard images are built from. An installed image has no Frostyard APT source and needs none: it updates as a whole.

The repository also works on a plain Debian 13 (trixie) host, on amd64 and arm64, for example to install Updex. This page shows how. That use is not supported.

This page covers Debian 13 only. The repository also publishes forky (Debian 14). System extensions do not work on plain Debian: use the .deb packages there.

Install the tools that fetch the key and check its fingerprint:

Terminal window
sudo apt install curl gpg

Create the keyring directory:

Terminal window
sudo install -d -m 0755 /etc/apt/keyrings

Download the signing key:

Terminal window
sudo curl -fsSL -o /etc/apt/keyrings/frostyard.gpg https://repository.frostyard.org/debian/frostyard.gpg

Check the key:

Terminal window
gpg --show-keys --with-fingerprint /etc/apt/keyrings/frostyard.gpg

The output shows the user ID Frostyard Debian Repository <debian@frostyard.org> and the fingerprint 432C 452C D2B7 F4FF 1B5D 2326 4DE6 A201 6E62 2F97. Compare it with 432C452CD2B7F4FF1B5D23264DE6A2016E622F97. If it differs, stop and delete the file with sudo rm /etc/apt/keyrings/frostyard.gpg.

Add the repository:

Terminal window
sudo tee /etc/apt/sources.list.d/frostyard.sources <<'EOF'
Types: deb
URIs: https://repository.frostyard.org/debian/
Suites: trixie
Components: main
Signed-By: /etc/apt/keyrings/frostyard.gpg
EOF

If you added /etc/apt/preferences.d/frostyard.pref from an earlier version of this page, you no longer need it. Remove it:

Terminal window
sudo rm -f /etc/apt/preferences.d/frostyard.pref

Refresh the package lists:

Terminal window
sudo apt update

The output includes https://repository.frostyard.org/debian trixie InRelease.

Each codename (trixie, forky) publishes 2 components: main and image. main holds the packages for general use. image holds the builds that Frostyard images need. Some replace a Debian package of the same name: libostree-1-1, incus, incus-base, incus-client, and incus-extra. Others depend on one of them: bootc links against that libostree-1-1, and incus-ui-canonical depends on incus. In trixie, image has these packages for amd64 only. In forky, image is empty. Frostyard image builds enable both components. Installed images have no Frostyard APT source and update as a whole.

Do not add image to a plain Debian host. A host that enables it by hand gets these builds without support.

main has no package that Debian also ships for the same codename. A plain host that uses only main therefore keeps Debian’s versions of these packages and Debian’s security updates, with no pin. That is a side effect, not support for plain hosts.

A host that already installed a Frostyard libostree-1-1, bootc, or incus* build keeps it and gets no more updates for it from Frostyard. There is no supported way back to Debian’s version. An older Incus can refuse a database that a newer Incus upgraded. Read Upgrade Incus.

List the packages in the repository:

Terminal window
apt list '?origin(Frostyard)'

Frostyard tools carry the frostyard- prefix, for example frostyard-updex (Updex) and frostyard-chairlift (ChairLift). The binary keeps the bare name. The repository also carries other applications. The Frostyard builds of bootc, libostree-1-1, and the incus packages are in image, not in main. See The image component.

On arm64, the repository has fewer packages. Check with apt-cache policy <package>.

List the versions of one package:

Terminal window
apt-cache policy frostyard-updex

The output shows the installed version, the newest version, and every version the repository offers.

Install a package:

Terminal window
sudo apt install frostyard-updex

Check it:

Terminal window
updex --version

The output shows the Updex version.

Refresh the lists, then upgrade everything:

Terminal window
sudo apt update
sudo apt upgrade

Upgrade one package:

Terminal window
sudo apt install --only-upgrade <package>

A package that Debian also ships stays with Debian, because main does not carry it.

List the versions that are available:

Terminal window
apt-cache policy <package>

Install an older version:

Terminal window
sudo apt install <package>=<version>

apt shows the package as a downgrade and asks you to confirm. Use the version string exactly as apt-cache policy prints it, including a ~deb13 marker when it has one.

You can roll back only the packages in main. The builds of bootc, libostree-1-1, and incus* are not for plain hosts: see The image component.

Stop apt upgrade from replacing it:

Terminal window
sudo apt-mark hold <package>

A held package stays at its version. Resume upgrades with sudo apt-mark unhold <package>.

After sudo apt update, a version that Frostyard withdrew is no longer listed, and apt cannot install it. A copy that you installed stays installed. If Frostyard publishes that release again, the version comes back.

Remove a package:

Terminal window
sudo apt remove <package>

Remove the repository: delete the sources file and the key, then refresh the lists:

Terminal window
sudo rm /etc/apt/sources.list.d/frostyard.sources /etc/apt/keyrings/frostyard.gpg
sudo apt update

The Frostyard lines no longer appear in the output. If you added the pin file from an earlier version of this page, remove it too: sudo rm -f /etc/apt/preferences.d/frostyard.pref.

Reviewed 2026-10-28.