DevPace
БлогСправкаНовостиСкачатьДемоТарифыПривязка устройстваВойтиНачать

Установка через .deb: инструкция для Debian и Ubuntu

Формат .deb — стандартный способ распространять программы для Debian, Ubuntu и всех дистрибутивов на их основе (Mint, Pop!_OS, Zorin и других). Если вам дали ссылку на файл с расширением .deb, установить его можно двумя штатными командами, без сторонних менеджеров пакетов и без сборки из исходников. Ниже — как это работает в целом, и отдельно — конкретный пример на DevPace.

Как вообще ставится .deb-пакет

Есть два способа поставить уже скачанный файл .deb, и разница между ними — в том, кто занимается зависимостями.

Способ 1: dpkg -i.

sudo dpkg -i /путь/до/файла.deb

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

Способ 2: apt install ./файл.deb.

sudo apt install ./файл.deb

Начиная с Ubuntu 16.04 / Debian 9, apt умеет ставить локальный .deb-файл точно так же, как пакет из репозитория — с одной важной разницей: сначала apt смотрит список зависимостей пакета, сверяет его с тем, что уже установлено в системе, и, если чего-то не хватает, сам скачивает недостающее из подключённых репозиториев и ставит вместе с основным пакетом. Именно поэтому в пути к файлу обязательно нужен ./ (или полный путь) — без него apt решит, что вы просите установить пакет с таким именем из репозитория, а не локальный файл.

Для большинства ситуаций способ через apt удобнее и надёжнее именно из-за автоматического решения зависимостей. dpkg -i оправдан, когда вы точно знаете, что все зависимости пакета уже стоят, или когда apt недоступен по какой-то причине.

Пример: установка DevPace

Агент DevPace для Linux распространяется в том числе в виде .deb-пакета. Скачать и установить последнюю версию можно одной командой:

curl -fL -o /tmp/growth-layer-agent.deb https://github.com/ak-alz/gla-client/releases/latest/download/growth-layer-agent_amd64.deb && sudo apt install -y /tmp/growth-layer-agent.deb

Команда делает две вещи по очереди:

  1. curl -fL -o ... скачивает актуальный релиз пакета во временную папку /tmp. Флаг -f останавливает загрузку с ошибкой, если сервер вернул код ошибки (а не сохраняет страницу с текстом ошибки под видом пакета), -L — идёт по редиректам, которые использует GitHub для ссылок на «последний релиз».
  2. sudo apt install -y ... ставит скачанный файл, автоматически подтягивая зависимости, если каких-то не хватает. Флаг -y отвечает «да» на подтверждающие вопросы, чтобы установка прошла без остановок.

После завершения команды агент DevPace установлен и его нужно привязать к аккаунту — как это сделать, описано на странице «Привязка устройства». Другие форматы установки для Linux (не только .deb) собраны в статье «Установка DevPace на Linux»; там же — ссылка на страницу «Скачать» со всеми доступными сборками.

Если не сработало

Установка .deb-пакета может остановиться на одном из нескольких типичных мест:

Автозапуск после установки

Многие программы, распространяемые как .deb-пакет, регистрируют фоновый сервис через systemd, чтобы он поднимался автоматически при загрузке системы, — так устроен и агент DevPace. Проверить, что сервис агента запустился после установки, можно командой:

systemctl status <имя-сервиса-агента>

В выводе команды должна быть строка Active: active (running) — это означает, что сервис работает. Если строка показывает inactive или failed, сервис можно запустить вручную командой sudo systemctl start <имя-сервиса-агента>, а посмотреть точные логи запуска — командой journalctl -u <имя-сервиса-агента>. Точное имя сервиса зависит от конкретного пакета — обычно оно совпадает с именем самого пакета или указывается в его документации.

Сколько это займёт по времени

Скачивание и установка .deb-пакета с уже готовой ссылкой — это одна-две команды и обычно занимает не больше 1-2 минут на обычном интернет-соединении. Если по пути встретилась одна из ситуаций из раздела «Если не сработало», на разбор и повторную попытку стоит закладывать ещё 3-5 минут.