↓ До тексту
  1. Статті/

deb822: новий формат джерел APT для Debian і Ubuntu

·4 хвилини
cat /etc/passwd
Автор
cat /etc/passwd
Технічний блог про Linux, DevOps та Open Source технології.
Зміст

Якщо ти відкриєш /etc/apt/sources.list на свіжому Debian 13 чи Ubuntu 24.04 і новіших - там буде порожньо. Звичні рядки deb http://... нікуди не поділися за змістом, але переїхали в окремі файли .sources у новому форматі deb822. Це не примха: формат зручніший, безпечніший і давно вважається рекомендованим. У пості про класичний sources.list ми збирали старий однорядковий формат - тут розберемо новий і дамо готові файли.

Що потрібно зробити?
#

Розібратися, що означають нові поля, узяти готовий .sources під свій дистрибутив - і, якщо система ще на старому форматі, перевести її однією командою. Нижче - короткий запис у терміналі, де видно і дефолтний .sources, і конвертацію стороннього репозиторію.

З чим працюю?
#

1
2
3
4
5
root@deb13:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
VERSION_ID="13"
VERSION_CODENAME=trixie
ID=debian

Чистий Debian 13 (trixie) з apt 3.0. На Ubuntu усе те саме - різниця лише в назвах suite та ключі, окремий готовий файл буде нижче.

APT deb822 · Debian 13 linuxway.com.ua

Що це за deb822 і навіщо він
#

Старий формат - це один рядок, де все злите докупи:

1
deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://deb.debian.org/debian trixie main contrib non-free-firmware

Формат deb822 розкладає той самий рядок на зрозумілі поля (звідси й «822» - як у заголовках RFC 822):

1
2
3
4
5
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Що це дає на практиці:

  • Читабельність. Видно, де тип, де адреса, де компоненти - не треба пам’ятати порядок слів у рядку.
  • Один блок - кілька suite й навіть кілька дзеркал. Suites: trixie trixie-updates, а в URIs можна перелічити кілька адрес через пробіл - apt сам підбере робочу.
  • Ключ прив’язаний до джерела. Signed-By вказує, яким саме ключем підписаний цей репозиторій. Це безпечніше за старий підхід, коли один ключ у спільному сховищі довіряв усім репозиторіям одразу.
  • Легко вимкнути. Додаєш Enabled: no у блок - і джерело вимкнене, не треба коментувати рядок.

Відповідність полів старому формату:

Старий рядокПоле deb822
deb / deb-srcTypes: (можна deb deb-src разом)
адреса http://...URIs:
trixieSuites:
main contrib ...Components:
[signed-by=...]Signed-By:
[arch=amd64]Architectures:

Файли лежать у /etc/apt/sources.list.d/ з розширенням .sources (старі - з .list). Обидва формати працюють одночасно, тож переходити можна поступово. Головне правило: не дублюй той самий репозиторій у .list і .sources - буде попередження про подвійне джерело.

Готовий debian.sources (Debian 13 / trixie)
#

Повний файл /etc/apt/sources.list.d/debian.sources - бери, клади, працює:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Хочеш і вихідні коди пакетів - заміни перший рядок на Types: deb deb-src. Потрібні backports - додай trixie-backports у Suites першого блоку.

Готовий ubuntu.sources (Ubuntu 26.04 / Resolute Raccoon)
#

На Ubuntu файл зветься /etc/apt/sources.list.d/ubuntu.sources. Для Ubuntu 26.04 (suite resolute):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Types: deb
URIs: http://archive.ubuntu.com/ubuntu
Suites: resolute resolute-updates resolute-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb
URIs: http://security.ubuntu.com/ubuntu
Suites: resolute-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Для іншого релізу просто поміняй resolute на свій suite: noble (24.04), jammy (22.04) тощо. Зверни увагу - у Ubuntu оновлення безпеки їдуть з окремого хоста security.ubuntu.com, тому це другий блок.

Стара система? Одна команда
#

Якщо після апгрейду в тебе лишилися .list-файли - не треба переписувати їх руками. У apt 3.0 (Debian 13, Ubuntu 24.04+) є команда, що зробить це сама:

1
apt modernize-sources

Вона покаже, які файли переведе, спитає підтвердження, збереже оригінали в .list.bak і запише нові .sources. У записі вище видно, як сторонній docker.list перетворюється на охайний docker.sources з правильним Signed-By.

Один чесний нюанс: для старих рядків без свого ключа (наприклад, успадкований sources.list із самим deb http://deb.debian.org/...) команда чесно попередить Could not determine Signed-By і лишить поле порожнім - бо не знає, яким ключем те джерело підписане. Такий блок усе одно працюватиме через загальне сховище довірених ключів, але краще дописати Signed-By вручну (для офіційних репозиторіїв Debian це /usr/share/keyrings/debian-archive-keyring.gpg, як у готовому файлі вище).

Після будь-яких змін - звичне:

1
apt update

Підсумок
#

deb822 - не косметика, а напрямок, у який рухаються і Debian, і Ubuntu: формат уже стоїть за замовчуванням, а сторонні репозиторії (той самий Docker) теж переходять на .sources. Старий однорядковий формат нікуди не зникне завтра, але новий читабельніший, прив’язує ключ до конкретного джерела і легше масштабується. Якщо тримаєш шпаргалку з командами apt - загляни і в неї.

Related

Vaultwarden - менеджер паролів для офісу без адміна

Паролі команди живуть у чатах і на стікерах, поки хтось не звільниться разом із доступами. Ставимо власний Vaultwarden на одну маленьку VM: окремий диск під дані, Docker, HTTPS без домену через внутрішній CA Caddy, а далі - спільний сейф організації з колекціями по відділах і запрошеннями на ~20 людей. Усе кроками, які осилить офіс без штатного адміна.