Linux Labs

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

Установленные пакеты и их файлы

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

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

Вернуть файл из архива

Пропавший файл пакета возвращает повторная установка того же архива. Свои настройки при этом не теряются.

sudo dpkg -i <архив> распаковывает файлы заново, поверх того, что осталось, и снова проверяет зависимости. Архив нужен той же версии, что стоит: dpkg -s и dpkg -I покажут обе. Скачанные архивы apt хранит в /var/cache/apt/archives: оттуда, например, можно вернуть файлы tree.

С настройками dpkg обращается бережнее. Файл настройки, который пакет объявил своим, — conffile — dpkg не перезаписывает, если ты его менял: твоя правка остаётся. Список таких файлов печатает dpkg -s в поле Conffiles.

Внимание

Не правь записи в /var/lib/dpkg/status руками ради «правильного» состояния: файлы от этого не вернутся, а база пакетов перестанет совпадать с системой.

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

Ты удалил conffile /etc/lab-pkg-report.conf и поставил тот же архив lab-pkg-report снова. Что будет с файлом настройки?

  • dpkg молча оставляет удалённый conffile удалённым. Спрашивает он, когда настройку изменили и ты, и новая версия пакета.

  • Удаление conffile dpkg считает твоей правкой, как и изменение. После установки ls -l /etc/lab-pkg-report.conf по-прежнему напечатает No such file or directory.

Удалённый conffile для dpkg — тоже локальная правка, повторная установка его не вернёт. Поставляемую версию возвращает sudo dpkg -i --force-confmiss <архив>.

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

  • Повторная установка того же архива возвращает файлы пакета.
  • Изменённый тобой conffile dpkg не перезаписывает.
  • Архив берут той же версии, что установлена; записи базы руками не правят.
Ubuntu 24.04
Загрузка…