Вы когда-нибудь задумывались, почему тот или иной двоичный файл или пакет, установленный в вашей системе, работает не так, как вы ожидали, то есть не так, как должен, или, возможно, вообще не запускается?
При загрузке пакетов вы можете столкнуться с такими проблемами, как нестабильное сетевое соединение или неожиданные отключения электроэнергии. Это может привести к установке повреждённого пакета.
Учитывая, что это важный фактор для сохранения целостности пакетов в вашей системе, проверка файлов в файловой системе на соответствие информации, хранящейся в пакете, является необходимым шагом.
В этой статье мы расскажем, как проверить контрольные суммы MD5 установленных пакетов в дистрибутивах на базе Debian, таких как Ubuntu и Mint.
Как проверить установленные пакеты на соответствие контрольным суммам MD5
В системах Debian/Ubuntu вы можете использовать инструмент debsums
для проверки MD5-сумм установленных пакетов. Если вы хотите узнать больше о пакете debsums перед его установкой, вы можете использовать команду apt-cache следующим образом:
apt-cache search debsums
Затем установите его с помощью команды apt.
sudo apt устанавливает debsums
Теперь пришло время узнать, как использовать инструмент debsums
для проверки MD5-суммы установленных пакетов.
Примечание: мы использовали sudo
во всех приведённых ниже командах, потому что у некоторых файлов могут не быть прав на чтение для обычных пользователей.
Понимание выходных данных debsums
Вывод команды debsums
показывает расположение файла слева и результаты проверки справа.
Есть три возможных результата, которые вы можете получить:
- OK — означает, что сумма MD5 файла в порядке.
- FAILED — показывает, что сумма MD5 файла не совпадает.
- REPLACED — означает, что конкретный файл был заменен файлом из другого пакета.
Когда вы запускаете его без каких-либо параметров, debsums
проверяет каждый файл в вашей системе на соответствие стандартным файлам MD5.
sudo debsums
Проверка MD5 Сумм всех файлов на наличие изменений
Чтобы включить проверку каждого файла и файла конфигурации на наличие изменений, добавьте параметр -a
или --all
sudo debsums --all
Проверка сумм MD5 Только для файлов конфигурации
Также можно проверить только файлы конфигурации, исключив все остальные файлы пакета, используя опцию -e
или --config
.
sudo debsums --config
Отображение только измененных файлов
Чтобы отобразить только изменённые файлы в выводе debsums, используйте параметр -c
или --changed
.
sudo debsums --changed
Список отсутствующих сумм файлов MD5
Чтобы отобразить файлы, для которых не указана сумма MD5, используйте параметр -l
или --list-missing
. В нашей системе эта команда не отображает файлы.
sudo debsums --list-missing
Проверьте сумму MD5 для одного пакета
Вы также можете проверить сумму MD5 для отдельного пакета, указав его название.
sudo debsums curl
Игнорирование ошибок разрешения файлов в Debsums
Если вы запускаете debsums от имени обычного пользователя без sudo, вы можете рассматривать ошибки разрешений как предупреждения, используя опцию --ignore-permissions
:
debsums --ignore-permissions
Как сгенерировать суммы MD5 из файлов .Deb
Опция -g
указывает debsums
на генерацию сумм MD5 из содержимого файла с расширением .deb
.
Вот дополнительные опции, которые вы можете использовать:
missing
— указывает debsums генерировать суммы MD5 из.deb
для пакетов, которые не предоставляют такую возможность.all
— указывает дебсумам игнорировать суммы на диске и использовать сумму, указанную в файле.deb
, или сгенерировать её, если она не указана.keep
— указывает debsums на необходимость записи извлечённых/сгенерированных сумм в файл /var/lib/dpkg/info/package.md5sums.nocheck
– означает, что извлеченные / сгенерированные суммы не сверяются с установленным пакетом.
Если вы посмотрите на содержимое каталога /var/lib/dpkg/info/, то увидите суммы MD5 для различных файлов, входящих в состав пакетов, как показано ниже:
cd /var/lib/dpkg/info ls *.md5sums
Вы можете сгенерировать сумму MD5 для пакета apache2, выполнив следующую команду:
sudo debsums --generate=missing apache2
Поскольку в пакете apache2 в моей системе уже есть контрольные суммы MD5, он выдаст тот же результат, что и при запуске.
sudo debsums apache2
Чтобы узнать о других интересных возможностях и способах использования, ознакомьтесь со справочной страницей debsums:
man debsums
Заключение
В этой статье мы рассказали, как проверить установленные пакеты Debian/Ubuntu по контрольным суммам MD5. Это может быть полезно, чтобы избежать установки и запуска повреждённых двоичных файлов или файлов пакетов в вашей системе. Для этого нужно сравнить файлы в файловой системе с информацией, хранящейся в пакете.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии ниже. Вы также можете предложить одно или два улучшения для этого поста.