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.
Add the repository
Section titled “Add the repository”Install the tools that fetch the key and check its fingerprint:
sudo apt install curl gpgCreate the keyring directory:
sudo install -d -m 0755 /etc/apt/keyringsDownload the signing key:
sudo curl -fsSL -o /etc/apt/keyrings/frostyard.gpg https://repository.frostyard.org/debian/frostyard.gpgCheck the key:
gpg --show-keys --with-fingerprint /etc/apt/keyrings/frostyard.gpgThe 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:
sudo tee /etc/apt/sources.list.d/frostyard.sources <<'EOF'Types: debURIs: https://repository.frostyard.org/debian/Suites: trixieComponents: mainSigned-By: /etc/apt/keyrings/frostyard.gpgEOFIf you added /etc/apt/preferences.d/frostyard.pref from an earlier version
of this page, you no longer need it. Remove it:
sudo rm -f /etc/apt/preferences.d/frostyard.prefRefresh the package lists:
sudo apt updateThe output includes https://repository.frostyard.org/debian trixie InRelease.
The image component
Section titled “The image component”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.
Find and install packages
Section titled “Find and install packages”List the packages in the repository:
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:
apt-cache policy frostyard-updexThe output shows the installed version, the newest version, and every version the repository offers.
Install a package:
sudo apt install frostyard-updexCheck it:
updex --versionThe output shows the Updex version.
Update
Section titled “Update”Refresh the lists, then upgrade everything:
sudo apt updatesudo apt upgradeUpgrade one package:
sudo apt install --only-upgrade <package>A package that Debian also ships stays with Debian, because main does not
carry it.
Roll back a package
Section titled “Roll back a package”List the versions that are available:
apt-cache policy <package>Install an older version:
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:
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
Section titled “Remove”Remove a package:
sudo apt remove <package>Remove the repository: delete the sources file and the key, then refresh the lists:
sudo rm /etc/apt/sources.list.d/frostyard.sources /etc/apt/keyrings/frostyard.gpgsudo apt updateThe 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.
See also
Section titled “See also”Sources
Section titled “Sources”Reviewed 2026-10-28.
- Owner decision, Brian, 2026-10-24: the repository is for Frostyard images and their builds. Plain Debian 13 hosts are not a supported use. Installed images have no Frostyard APT source: core ADR-0059, Context.
imagecomponent: ADR-0059, accepted by Brian on 2026-10-24 (core#162, accepted in core#163): the rule forimage, the 7 packages, and step 6 (key URL, no pin, caveat for plain hosts). ADR-0061 amends it: the first publication run addsimage.- Ben Sherman’s review of core#162: protection of plain hosts is a side effect, not a commitment, and no Incus downgrade advice.
- apt-publisher commit
d9337550b9a34e1246099c18747ee0080e84cbac:docs/adr/0002-two-components-per-codename.md,config/producers.tsv - snosi commit
90074e6db6cf59ac551db8637126c5feaa512866:mkosi.sandbox/etc/apt/sources.list.d/frostyard.sourcesreadsComponents: main imageafter snosi#1165, merged 2026-10-27. - Live reads, 2026-10-28:
dists/trixie/InRelease(Date: Wed, 28 Oct 2026 09:36:46 UTC,Components: image main,Origin: Frostyard);mainlists none of the 7 packages;imagehas them for amd64 only and is empty for arm64;dists/forky/InRelease(Date: Mon, 26 Oct 2026 18:31:42 UTC,Components: image main) with an emptyimagefor every architecture; intrixie/image/binary-amd64/Packages,bootchasDepends: libostree-1-1andincus-ui-canonicalhasDepends: incus;debian/frostyard.gpgis a binary keyring with SHA2567c270b81dfc4084753c9aacadffe436c23f066301e2e0c371261889ee3e3557fand fingerprint432C 452C D2B7 F4FF 1B5D 2326 4DE6 A201 6E62 2F97./public.keystill works. - Incus database after an upgrade: Incus, Upgrade Incus, read 2026-10-24.
- core commit
4d340b939fccab2ecb7f0be5dbf9e7ab7c03963c docs/adr/0055-publish-debian-packages-through-the-apt-publisher.mddocs/adr/0011-frostyard-prefixed-package-names.mddocs/design/debian-publication.md.github/stable-repository.json- The steps on this page were run in a
debian:trixiecontainer on 2026-10-28. - Lucilla’s owner review of frostyard-org#55, 2026-10-28: the
imagepackage roles,forky, and the live reads. - Lucilla’s review of frostyard-org#32: the pin, arm64, and withdrawal
- Lucilla’s review of frostyard-org#29
- Owner statement, Murbella, 2026-10-23: system extensions are not supported on plain Debian.