Всем привет ! Друзья, есть ли какая-нибудь команда что бы проверить есть ли в системе все необходимые зависимости ? Вот например стоит Gimp, но не запускается, значит чего то не хватает, можно ли как-нибудь проверить чего именно ?
Проверка целостности системы
1. ldd $(which gimp)
2.tail +13 CHECKSUMS.md5 | md5sum -c --quiet - | lessВторое (см. заголовок темы) описано в файле CHECKSUMS.md5 и к зависимостям не имеет никакого отношения.
UPD: для проверки зависимостей всей системы можно поступить примерно так:
for file in $(find / -type f -executable 2>/dev/null); do ldd $file | grep "not found" | sort -u >> ~/dependencies.txtСпасибо !
for file in $(find / -type f -executable 2>/dev/null); do ldd $file | grep "not found" | sort -u >> ~/dependencies.txt
Не работает это ни каким каком! Что это за заклинания?
можно ли как-нибудь проверить чего именно ?
Да без проблем - надо просто в консоли написать gimp и нажать на enter. А потом в выхлопе будет написано чего именно не хватает.
Не работает это ни каким каком! Что это за заклинания?
Это здравая идея в плохой реализации.
Идея: пройтись по всем исполняемым файлам, для каждого позвать "ldd имя_файла", поискать в выводе "not found" и сложить результат -- отсутствующие библиотеки, нужные кому-либо -- в файл ~/dependencies.txt, исключив дубликаты.
Дефекты реализации:
1) аргумент for легко может вылезти вылезет за предельный размер командной строки, решение -- замена "for f in $(команда);" на "команда | while read f;"
2) среди исполняемых файлов довольно много скриптов на чём угодно, с другой стороны, ldd на это "по барабану";
3) с практической точки зрения может оказаться достаточным анализа /usr/local/bin;/usr/bin;/bin;/usr/local/sbin;/usr/sbin;/sbin;/usr/lib;/usr/libexec плюс содержимое PATH
По поводу поиска зависимостей есть slackdeptrack и ещё несколько подобных.
Вообще говоря лучшая проверка целостности это prelink..
Где напишет "Could not find one of the dependencies" там и засада
Убиваются сразу два зайца из-за угла - и быстрота и система проверяется
Топология в действии - кривой путь он всегда короче :-)