Linux Labs

Пакеты, службы, журналы / Ступень 3 из 13

Установка, обновление и удаление пакетов

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 8 · теория · 6 мин

Распаковка и настройка

dpkg ставит пакет в два этапа. Ошибка на втором оставляет файлы на диске, а пакет — недоустановленным.

Первый этап — распаковка: файлы из архива ложатся по местам. Второй — настройка: dpkg проверяет зависимости, кладёт в /etc файлы настроек пакета и запускает его сценарии установки. Только после настройки пакет считается установленным.

Зависимости dpkg проверяет перед настройкой. lab-pkg-data в системе не было, поэтому lab-pkg-report остался распакованным: dpkg -s пишет Status: install ok unpacked, а dpkg -l ставит в начале строки iU. Программа уже лежит в /usr/bin, а её настройки ещё нет — её ошибки ты и видел.

Чинят это так: ставят зависимость, затем доделывают настройку. sudo dpkg --configure lab-pkg-report настраивает один пакет, sudo dpkg --configure -a — все, что остались ненастроенными. Можно и сразу дать dpkg -i оба архива одной командой: он распакует оба и настроит их по порядку зависимостей.

dpkg ставит только те архивы, которые ему дали, и в сеть не ходит. Зависимости из репозиториев подбирает apt install. Здесь сети нет, и sudo apt install ./lab-pkg-report_1.0-1_all.deb напечатает lab-pkg-data (= 1.0-1) but it is not installable.

Проверь себя 1 вопрос

dpkg -s пакета показывает Status: install ok unpacked, нужную зависимость ты уже поставил. Что сделаешь дальше?

  • Без настройки в /etc нет файла настроек пакета, а dpkg -s пишет unpacked. Программа без него печатает ошибки, как в начале урока.

  • Архив цел, файлы уже распакованы. Не хватает этапа настройки — его делает dpkg --configure.

  • apt update обновляет индексы репозиториев и пакет не настраивает. Состояние в dpkg -s останется unpacked.

unpacked — файлы на месте, пропущен этап настройки. sudo dpkg --configure <пакет> его выполняет, после чего dpkg -s пишет install ok installed.

Главное в шаге

  • dpkg ставит пакет в два этапа: распаковка, затем настройка.
  • Без зависимости пакет остаётся unpacked: файлы на диске, установка не закончена.
  • Поставь зависимость и выполни dpkg --configure — настройка завершится.
Ubuntu 24.04
Загрузка…