Если в системе по каким-то причинам есть бинарные файлы, а нет внешних библиотек к ним, то этот скрипт поможет достаточно просто найти такие файлы:#!/bin/bash
# скрип для поиска проблемных файлов
# список директорий для поиска
directory=("/usr/bin/" "/usr/sbin/" "/bin/" "/usr/lib/" "/usr/lib64/")# Loop through our array.
for x in ${directory[@]}
do
# Find all Files
for i in $(find $x -type f -executable)
do
# если ldd выдает ошибку "not found"..
n=`ldd "$i" | grep found 2>/dev/null`
if [ -n "$n" ]; then
echo $i " not found lib: " $n
fi
done
doneURL:
Обсуждается: http://www.opennet.me/tips/info/2347.shtml
revdep-rebuild? :)
Не все ж такие умные на генте сидят
qcheck --nomtime --badonly --all | tee failed | xargs emerge
Не совсем правильное условие отбора файлов в директории. Часть из них скрипты на шеле, перле и т. п. А часть программ со статической сборкой. Более правильно вместо find будет использовать конструкцию типа например для FreeBSD
file * | grep 'dynamically linked' | awk -F ':' '{print $1}'
да, но они выдадут в таком случае ошибку "not a dynamic executable"
Кстати кроме 'проблемных' бинарников приведенным вами способом можно искать и 'проблемные' динамические библиотеки. libXXXX.so
поэтому я и задал в массиве директории библиотек :)
тогда -executable не имеет смысла. В Debian, например, почти все библиотеки в /usr/lib не имеют флага x.
это да, спасибо за корректировку.
Для FreeBSD:ports/sysutils/bsdadminscripts
утилита pkg_libchk
Хочется сказать что-нибудь флеймовое и острое :)Но скажу проще: люди, не превращайте Вашу систему в LFS, используйте пакетный менеджер, если у Вас бинарный дистрибутив, и даже если не бинарный, все равно, тарболлы они не для Вас, а для мантайнеров!
букваль неделю назад установил себе MopsLinux. не запускалась одна прога. выяснилось, что народ в 64битном дистре забыли пару пакетов пересобрать под новые либы... после этого написал сей скрипт и выловил еще пару программ с подобной проблемой. а потом проверил на работе - еще пару. mpkg и synaptic.
во как оно бывает, однако!
Да, баги есть везде :)
ну-ну
Спасибо карбофосу, прикопаю скриптик на случай чего )
да всегда пожалуйста. :) если мне пригодилось, значит и другим, авось, сгодиться.
я там скриптик немного подправил для большей читабельности результатов.