# Debian — Швейцарский нож в мире Linux

Индекс LLMS: [llms.txt](/llms.txt)

---

Debian — это не самый яркий дистрибутив, но самый надёжный фундамент в мире Linux. За ним стоит крупнейшее сообщество волонтёров-разработчиков, а за его плечами — десятилетия безотказной работы серверов, встраиваемых систем и облачной инфраструктуры. Если ты управляешь Linux-машинами в продакшене, Debian (или его производные) уже присутствует в твоём стеке — осознанно или нет.

## Управление пакетами: apt и dpkg

Два инструмента формируют ядро пакетной системы Debian. `apt` — высокоуровневый интерфейс для работы с репозиториями, разрешения зависимостей и обновления системы. `dpkg` — низкоуровневый движок, который устанавливает, удаляет и анализирует отдельные `.deb`-файлы без обращения к репозиториям.

```bash
# Обновление индекса и апгрейд системы
apt update
apt upgrade -y
apt full-upgrade -y

# Установка и удаление
apt install -y nginx
apt remove --purge nginx
apt autoremove -y

# Поиск и информация
apt search nginx
apt show nginx
apt list --installed | grep nginx

# dpkg для прямой работы с .deb
dpkg -i package.deb
dpkg -l | grep nginx
dpkg -L nginx
dpkg -S /usr/bin/nginx
```

> [!WARNING]
> `dpkg -i` не разрешает зависимости. Если пакет тянет другие библиотеки, используй `apt install ./package.deb` — apt подтянет недостающие зависимости из репозитория.

Типичная ошибка — смешивание `apt` и `dpkg` при частичных установках. Если `dpkg -i` завершился с ошибкой зависимости, запусти `apt --fix-broken install` и заверши операцию через `apt`.

## Модель стабильности и ветви релизов

Debian строится на трёх ветвях, определяющих агрессивность обновлений и уровень тестирования.

| Ветвь | Кодовое имя | Стабильность | Когда использовать |
|---|---|---|---|
| stable | bookworm (12) / trixie (13) | Высокая, только безопасность и критические фиксы | Продакшен-серверы, базовая инфраструктура |
| testing | bookworm-progress | Средняя, пакеты проходят период стабилизации | Разработчественные машины, контейнеры |
| unstable | sid | Низкая, ежедневные снапшоты | Эксперименты, бинарный сбор пакетов |

В `sources.list` это выглядит так:

```bash
# Stable — рекомендуется для прода
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
```

> [!NOTE]
> Секции `non-free` и `non-free-firmware` были введены начиная с Debian 12. Без них некоторые проприетарные драйверы (Wi-Fi, GPU) не установятся.

Переход между ветвями — `apt dist-upgrade` с подменой `sources.list`. Делай это только на тестовых стендах: бинарная совместимость между testing и stable не гарантирована для всех пакетов.

## Поддержка архитектур

Debian официально поддерживает больше аппаратных платформ, чем любой другой дистрибутив. Это критично для embedded и IoT-проектов.

| Архитектура | Порт | Типичное применение |
|---|---|---|
| amd64 | amd64 | Серверы, десктопы, облако |
| arm64 | arm64 | ARM-серверы (AWS Graviton, Raspberry Pi 4/5) |
| armhf | armhf | Встраиваемые устройства с FPU |
| i386 | i386 | Legacy-системы |
| ppc64el | ppc64el | IBM Power Systems |
| s390x | s390x | IBM Z mainframes |
| riscv64 | riscv64 | Открытые RISC-V платформы |

Мультиархитектурная поддержка позволяет ставить пакеты для чужих платформ:

```bash
dpkg --add-architecture arm64
apt update
apt install -y package:arm64
```

## Debian как основа других дистрибутивов

Практически каждый крупный дистрибутив, которым ты пользуешься, построен на Debian или наследует его модель пакетов.

- **Ubuntu** — берёт testing-ветвь, добавляет свои PPA и проприетарные драйверы.
- **Linux Mint** — основан на Ubuntu, следовательно, на Debian-пакетах.
- **Proxmox VE** — модифицированный Debian 12 с добавлением корпоративных репозиториев.
- **Kali Linux** — Debian unstable с набором инструментов пентеста.
- **Raspberry Pi OS** (бывший Raspbian) — Debian armhf/arm64 с патчами для Pi.
- **MX Linux, antiX** — Debian stable с облегчёнными DE.

> [!TIP]
> Если тебе нужен стабильный бэкленд с более свежим софтом — берёшь Debian stable и добавляшь backports-репозиторий. Это даёт обновлённые версии ядра, nginx, PostgreSQL без перехода на testing.

```bash
echo "deb http://deb.debian.org/debian bookworm-backports main" >> /etc/apt/sources.list
apt update
apt install -t bookworm-backports linux-image-amd64
```

## Практические сценарии в DevOps

В повседневной работе Debian-подход проявляется в нескольких ключевых паттернах.

**Базовые образы для контейнеров.** Официальные Docker-образы `debian:bookworm`, `debian:slim` — это отправная точка для сотен минималистичных контейнеров. Вес `debian:slim` — около 70 МБ против 200+ МБ у `ubuntu:latest`.

```dockerfile
FROM debian:slim
RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/*
```

**VM-шаблоны.** Proxmox, который работает на Debian, использует `debootstrap` для создания шаблонов контейнеров (LXC). Это тот же инструмент, что лежит в основе установки системы с нуля.

**Конфигурационное управление.** Ansible, Puppet, Chef — все три работают с Debian-пакетами напрямую. Модуль `apt` в Ansible — один из самых используемых в любом плейбуке.

**CI/CD пайплайны.** Сборка `.deb`-пакетов в GitLab CI или GitHub Actions — стандартный паттерн. `debhelper`, `dh_make`, `pbuilder` или `sbuild` обеспечивают воспроизводимый билд в чистом chroot.

## Ключевые команды для повседневной работы

Сведи эту таблицу в закладки — она покрывает 90% задач на Debian-сервере.

| Задача | Команда |
|---|---|
| Обновить список пакетов | `apt update` |
| Обновить все пакеты | `apt upgrade -y` |
| Полный апгрейд с разрешением зависимостей | `apt full-upgrade -y` |
| Установить пакет | `apt install -y <pkg>` |
| Удалить пакет с конфигами | `apt purge -y <pkg>` |
| Найти пакет | `apt search <query>` |
| Информация о пакете | `apt show <pkg>` |
| Список установленных | `apt list --installed` |
| Найти файл принадлежащий пакету | `dpkg -S <path>` |
| Список файлов пакета | `dpkg -L <pkg>` |
| Проверить статус пакета | `dpkg -l <pkg>` |
| Починить сломанные зависимости | `apt --fix-broken install` |
| Очистить кэш apt | `apt clean && apt autoclean` |
| Добавить архитектуру | `dpkg --add-architecture <arch>` |
| Создать .deb из исходников | `debuild -us -uc` |

Debian не самый быстрый на первый взгляд — нет rolling-релизов и свежих версий софта из коробки. Но именно эта предсказуемость делает его базой для продакшена, на котором работают миллионы серверов. Если ты хочешь надёжность, а не трендовые версии — Debian не подведёт.
