1

Всем привет ! Друзья, есть ли какая-нибудь команда что бы проверить есть ли в системе все необходимые зависимости ? Вот например стоит Gimp, но не запускается, значит чего то не хватает, можно ли как-нибудь проверить чего именно ?

Величайший враг прячется там, где вы будете меньше всего его искать. "Юлий Цезарь"

2 (16.11.2012 20:35:22 отредактировано yars)

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
Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

3

Спасибо !

Величайший враг прячется там, где вы будете меньше всего его искать. "Юлий Цезарь"
yars пишет:

for file in $(find / -type f -executable 2>/dev/null); do ldd $file | grep "not found" | sort -u >> ~/dependencies.txt

Не работает это ни каким каком! Что это за заклинания?

OS: Gentoo
CPU: Xeon E5450 RAM: 8 Gb DDR2, VGA: GeForce GTX750 Ti
MB: Asus P5Q SE2

5

GLX пишет:

можно ли как-нибудь проверить чего именно ?

Да без проблем - надо просто в консоли написать gimp и нажать на enter. А потом в выхлопе будет написано чего именно не хватает.

have a lot of fun!
Ас-саля́му ‘алейкум Чака Хан!
уютный бложик
+ GLX

6

Wehrmacht_Rover пишет:

Не работает это ни каким каком! Что это за заклинания?

Это здравая идея в плохой реализации.
Идея: пройтись по всем исполняемым файлам, для каждого позвать "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 и ещё несколько подобных.

7 (03.12.2012 11:36:13 отредактировано SergMarkov)

Вообще говоря лучшая проверка целостности это prelink..
Где напишет "Could not find one of the dependencies" там и засада
Убиваются сразу два зайца из-за угла - и быстрота и система проверяется
Топология в действии - кривой путь он всегда короче :-)