Linux Labs

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

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

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

Шаг 2 из 8 · на машине · 5 мин

Запись в базе и файлы на диске

База пакетов — записи, которые dpkg сделал при установке. Файлы на диске живут своей жизнью.

Когда dpkg ставит пакет, он записывает в базу пакетов его имя, версию, состояние и список всех файлов, которые разложил по системе. Строка Status: install ok installed значит: пакет установлен и настроен, ошибок при установке не было.

Дальше запись меняется, только когда пакетом занимается сам dpkg — при установке, обновлении или удалении. rm, удаливший файл программы, базу не трогает. Поэтому список файлов в записи и содержимое диска могут разойтись.

Список файлов пакета из записи печатает dpkg -L, а ls проверяет сам диск:

bash
dpkg -L lab-pkg-report
ls -l /usr/bin/lab-pkg-report

В списке dpkg -L есть /usr/bin/lab-pkg-report, а ls печатает No such file or directory.

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

Ты удалил /usr/share/doc/tree/TODO командой sudo rm. Что напечатает dpkg -L tree?

  • dpkg -L файлы не проверяет и о повреждениях не сообщает: он печатает записанный список.

  • Список берётся из записи в базе, а rm её не меняет. Пропавший файл в списке остаётся — проверяет диск только ls.

dpkg -L печатает список из записи о пакете, сделанной при установке. Есть ли файл на диске, покажет ls -l /usr/share/doc/tree/TODO — No such file or directory.

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

  • dpkg записывает в базу пакетов состояние пакета и список его файлов.
  • Запись меняется только операциями dpkg, удаление файла руками её не трогает.
  • dpkg -L печатает файлы из записи, есть ли они на диске — проверяет ls.
Ubuntu 24.04
Загрузка…