Иногда установленный пакет или программное обеспечение может работать не так, как ожидалось. Более того, иногда он может даже не запуститься должным образом. В таких случаях может оказаться, что файл пакета, который вы загрузили, поврежден или неполный. Это может произойти, если при передаче файла возникли проблемы, связанные с сетью. Поэтому важно проверить целостность загруженного файла пакета, прежде чем устанавливать его в систему. Это делается путем подсчета контрольной суммы скачанного файла и сравнения ее с контрольной суммой, предоставленной поставщиком пакета на его сайте. Обычно это контрольная сумма MD5. В этой статье мы узнаем, как проверить контрольную сумму MD5 установленных пакетов в Debian Linux.
Как проверить контрольную сумму MD5 установленных пакетов в Debian Linux
В системах Ubuntu/Debian вы можете использовать инструмент debsums для проверки контрольной суммы MD5 установленных пакетов. Вы можете выполнить следующую команду, чтобы узнать больше об этом пакете.
1 | apt-cache search debsums |
Вот команда для установки debsums на вашу систему.
1 | sudo apt install debsums |
После установки debsums вы можете запустить его с помощью следующей команды.
1 | sudo debsums |
Она прочитает контрольную сумму MD5 каждого пакета в вашей системе и сравнит ее с оригинальной суммой, представленной на сайте каждого пакета. На выходе вышеуказанной команды будет список всех установленных пакетов, а также статус их контрольной суммы, который может иметь любое из трех значений -
- OK - показывает, что MD5-сумма файла в порядке.
- FAILED - означает, что MD5-сумма файла не совпадает.
- REPLACED - означает, что конкретный файл был заменен файлом из другого пакета.
Вот пример вывода вышеприведенной команды.
Приведенная выше команда проверяет контрольную сумму MD5 всех пакетов. Если вы хотите проверить контрольную сумму MD5 конкретного пакета, например, apache, то укажите его после команды debsum, как показано ниже.
1 | sudo debsums apache2 |
Если вы хотите проверить только конфигурационные файлы и исключить другие файлы, используйте опцию -config или -e.
1 | sudo debsums --config |
Если вы хотите проверить контрольную сумму MD5 всех файлов, присутствующих во всех пакетах, используйте опцию -all.
1 | sudo debsums --all |
Если вы хотите отобразить в выводе только измененные файлы, используйте опцию -changed.
1 | sudo debsums --changed |
Некоторые пакеты и файлы могут не иметь информации о контрольной сумме MD5. Чтобы перечислить все такие файлы и пакеты, используйте опции -l и -list-missing.
1 | sudo debsums --list-missing |
Обычно команду debsums нужно запускать от имени пользователя с привилегиями sudo. Если вы хотите запустить эту команду от имени обычного пользователя без прав sudo, то используйте опцию -ignore-permissions.
1 | debsums --ignore-permissions |
debsum можно также использовать для генерации контрольных сумм MD5 для пакетов. Для этого вы можете использовать опцию -g или -generate. Эта опция принимает 4 значения
- missing - указывает debsums генерировать MD5-суммы из deb для пакетов, которые их не предоставляют.
- all - указывает debsums игнорировать дисковые суммы и использовать ту, что присутствует в deb-файле, или сгенерированную из него, если таковой не существует.
- keep - указывает debsums записать извлеченные/генерированные суммы в файл /var/lib/dpkg/info/package.md5sums.
- nocheck - означает, что извлеченные/генерированные суммы не будут сверяться с установленным пакетом.
Вот пример команды для генерации контрольной суммы для пакета apache2.
1 | sudo debsums --generate=missing apache2 |
Если указанный пакет уже имеет контрольную сумму MD5, приведенная выше команда покажет результат, аналогичный выполнению команды
1 | sudo debsums apache2 |
Обычно в папке /var/lib/dpkg/info хранится контрольная сумма MD5 всех пакетов. Вы можете просмотреть список с помощью следующих команд.
1 2 | cd /var/lib/dpkg/info ls *.md5sums |
В этой статье мы научились проверять контрольные суммы MD5 пакетов, установленных в вашей системе, а также генерировать контрольные суммы MD5 для пакетов, в которых отсутствует эта информация.