Common questions about the format of
/etc/apt/sources.list, the difference between DEB822
and the legacy one-line style, and how this site is kept in sync
with Debian and Ubuntu release data.
What's the difference between one-line and DEB822?
The one-line format is the classic
deb http://… suite components syntax that has
shipped since the very first apt releases. It lives in
/etc/apt/sources.list and in
.list files under
/etc/apt/sources.list.d/.
DEB822 (named after RFC 822-style key/value
fields) is the modern format used in
.sources files under
/etc/apt/sources.list.d/. One stanza can cover
several suites and multiple URIs at once, and a
Signed-By: field pins the stanza to a specific
keyring. Debian 12+ and Ubuntu 24.04+ use DEB822 by default.
Why did Debian move security to codename-security?
Prior to Debian 11, security updates used the suite name
<codename>/updates on
security.debian.org. Debian 11 switched to the
current
<codename>-security convention to match the
rest of the suite naming and avoid the slash/subdirectory
confusion. The generator always emits the modern form for
any supported release.
Why does Ubuntu on arm64 use ports.ubuntu.com?
Canonical only mirrors
amd64 and i386 packages on
archive.ubuntu.com. Every other architecture
(arm64, armhf, ppc64el,
riscv64, s390x) lives on
ports.ubuntu.com/ubuntu-ports, including the
security suite. Picking one of those architectures in the
generator switches both primary and security URIs
automatically.
Should I enable backports?
Only if you need a newer version of a specific
package than the one in stable. Backports are opt-in
per-package (you install with
apt install -t bookworm-backports <pkg>)
and come with looser testing than the main archive. Leave
them disabled unless you have a concrete reason.
How do I verify a third-party GPG key?
Compare the key's full fingerprint (40 hex characters) against the vendor's official install documentation. Never trust a key that only appears on a fan-made tutorial or a copy-paste gist.
After downloading the key, you can print its fingerprint with:
gpg --show-keys --with-fingerprint /tmp/their-key.gpg
Install it into /etc/apt/keyrings/ (not
/usr/share/keyrings/, which is reserved for
distro-shipped keyrings) and reference it from your
.sources file via Signed-By:.
My apt update complains about Signed-By, what now?
Modern apt refuses to use a repository unless it can verify the signature against an explicit keyring. If you're seeing a "The following signatures couldn't be verified…" or "Repository is not signed" error:
- Check that the keyring file exists at the path in your
Signed-By:field and is world-readable. - Verify that the key inside it hasn't expired.
- If you used
apt-key addin the past, replace it with a keyring file —apt-keyis deprecated and removed on recent releases.
Can I mix one-line and DEB822 on the same system?
Yes. apt reads every .list and
.sources file under
/etc/apt/sources.list.d/ in addition to the
legacy /etc/apt/sources.list. Just avoid
defining the same suite in two places — you'll see
duplicate-sources warnings.
How are the supported releases kept up to date?
The generator's release list is auto-generated from the
canonical
distro-info-data
CSVs that Debian publishes for itself and Ubuntu. A weekly
GitHub Actions workflow runs
scripts/update-releases.mjs, diffs the result,
and opens a pull request when a release changes state.
Where does this site come from?
It's a small static site on GitHub, served via GitHub Pages. All generation happens in your browser — nothing is sent to a server.