Вы когда-нибудь задумывались, почему тот или иной двоичный файл или пакет, установленный в вашей системе, работает не так, как вы ожидали, то есть не так, как должен, или, возможно, вообще не запускается?
При загрузке пакетов вы можете столкнуться с такими проблемами, как нестабильное сетевое соединение или неожиданные отключения электроэнергии. Это может привести к установке повреждённого пакета.
Учитывая, что это важный фактор для сохранения целостности пакетов в вашей системе, проверка файлов в файловой системе на соответствие информации, хранящейся в пакете, является необходимым шагом.
В этой статье мы расскажем, как проверить контрольные суммы MD5 установленных пакетов в дистрибутивах на базе Debian, таких как Ubuntu и Mint.
В системах Debian/Ubuntu вы можете использовать инструмент debsums
для проверки MD5-сумм установленных пакетов. Если вы хотите узнать больше о пакете debsums перед его установкой, вы можете использовать команду apt-cache следующим образом:
apt-cache search debsums
Затем установите его с помощью команды apt.
sudo apt устанавливает debsums
Теперь пришло время узнать, как использовать инструмент debsums
для проверки MD5-суммы установленных пакетов.
Примечание: мы использовали sudo
во всех приведённых ниже командах, потому что у некоторых файлов могут не быть прав на чтение для обычных пользователей.
Вывод команды debsums
показывает расположение файла слева и результаты проверки справа.
Есть три возможных результата, которые вы можете получить:
Когда вы запускаете его без каких-либо параметров, debsums
проверяет каждый файл в вашей системе на соответствие стандартным файлам MD5.
sudo debsums
Чтобы включить проверку каждого файла и файла конфигурации на наличие изменений, добавьте параметр -a
или --all
sudo debsums --all
Также можно проверить только файлы конфигурации, исключив все остальные файлы пакета, используя опцию -e
или --config
.
sudo debsums --config
Чтобы отобразить только изменённые файлы в выводе debsums, используйте параметр -c
или --changed
.
sudo debsums --changed
Чтобы отобразить файлы, для которых не указана сумма MD5, используйте параметр -l
или --list-missing
. В нашей системе эта команда не отображает файлы.
sudo debsums --list-missing
Вы также можете проверить сумму MD5 для отдельного пакета, указав его название.
sudo debsums curl
Если вы запускаете debsums от имени обычного пользователя без sudo, вы можете рассматривать ошибки разрешений как предупреждения, используя опцию --ignore-permissions
:
debsums --ignore-permissions
Опция -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. Это может быть полезно, чтобы избежать установки и запуска повреждённых двоичных файлов или файлов пакетов в вашей системе. Для этого нужно сравнить файлы в файловой системе с информацией, хранящейся в пакете.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии ниже. Вы также можете предложить одно или два улучшения для этого поста.