Якщо ти відкриєш /etc/apt/sources.list на свіжому Debian 13 чи Ubuntu 24.04 і новіших - там буде порожньо. Звичні рядки deb http://... нікуди не поділися за змістом, але переїхали в окремі файли .sources у новому форматі deb822. Це не примха: формат зручніший, безпечніший і давно вважається рекомендованим. У пості про класичний sources.list ми збирали старий однорядковий формат - тут розберемо новий і дамо готові файли.
Що потрібно зробити?#
Розібратися, що означають нові поля, узяти готовий .sources під свій дистрибутив - і, якщо система ще на старому форматі, перевести її однією командою. Нижче - короткий запис у терміналі, де видно і дефолтний .sources, і конвертацію стороннього репозиторію.
З чим працюю?#
| |
Чистий Debian 13 (trixie) з apt 3.0. На Ubuntu усе те саме - різниця лише в назвах suite та ключі, окремий готовий файл буде нижче.
Що це за deb822 і навіщо він#
Старий формат - це один рядок, де все злите докупи:
| |
Формат deb822 розкладає той самий рядок на зрозумілі поля (звідси й «822» - як у заголовках RFC 822):
| |
Що це дає на практиці:
- Читабельність. Видно, де тип, де адреса, де компоненти - не треба пам’ятати порядок слів у рядку.
- Один блок - кілька suite й навіть кілька дзеркал.
Suites: trixie trixie-updates, а вURIsможна перелічити кілька адрес через пробіл - apt сам підбере робочу. - Ключ прив’язаний до джерела.
Signed-Byвказує, яким саме ключем підписаний цей репозиторій. Це безпечніше за старий підхід, коли один ключ у спільному сховищі довіряв усім репозиторіям одразу. - Легко вимкнути. Додаєш
Enabled: noу блок - і джерело вимкнене, не треба коментувати рядок.
Відповідність полів старому формату:
| Старий рядок | Поле deb822 |
|---|---|
deb / deb-src | Types: (можна deb deb-src разом) |
адреса http://... | URIs: |
trixie | Suites: |
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 - бери, клади, працює:
| |
Хочеш і вихідні коди пакетів - заміни перший рядок на 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):
| |
Для іншого релізу просто поміняй resolute на свій suite: noble (24.04), jammy (22.04) тощо. Зверни увагу - у Ubuntu оновлення безпеки їдуть з окремого хоста security.ubuntu.com, тому це другий блок.
Стара система? Одна команда#
Якщо після апгрейду в тебе лишилися .list-файли - не треба переписувати їх руками. У apt 3.0 (Debian 13, Ubuntu 24.04+) є команда, що зробить це сама:
| |
Вона покаже, які файли переведе, спитає підтвердження, збереже оригінали в .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, як у готовому файлі вище).
Після будь-яких змін - звичне:
| |
Підсумок#
deb822 - не косметика, а напрямок, у який рухаються і Debian, і Ubuntu: формат уже стоїть за замовчуванням, а сторонні репозиторії (той самий Docker) теж переходять на .sources. Старий однорядковий формат нікуди не зникне завтра, але новий читабельніший, прив’язує ключ до конкретного джерела і легше масштабується. Якщо тримаєш шпаргалку з командами apt - загляни і в неї.



