portage - проверка правильности установки пакетов

Вопрос - есть ли на уровне portage / emerge / emaint / eselect какой-нибудь механизм (программа,скрипт. и т.п., которая проверяет правильность установленного пакета.
Ну, например

emerge -s example

net-libs/example_2.3 installed
net-libs/example_2.5 available

А что это на самом деле означает? То, есть нало проверить (MD5, permissions, )
что в установленном пакете example_2.3 действительно находятся (не затерты, не поменяны права, симв. ссылки)

на
/usr/bin/example
/usr/lib/example.so.4
/usr/lib/example.so -> /usr/lib/example.so.4
/lib/libexample.so.1.3
/lib/libexampl++.1.4
/etc/example.conf

ну , что-то в таком роде
Что бы можно было выяснить, затер ли кто-то или что-то из пакета и он теперь "полуживой"
Надеюсь вопрос ясен?

имхо чушь

имхо чушь какая-то понаписана. По поводу md5 - приглядитесь к тому, что пишет emerge при emerge something (подксказка - там смайлики есть еще :-) ). net-libs/example_2.3 installed - это он пишет, какая версия установлена, net-libs/example_2.5 available - это он пишет, какая доступна, но не установлена.

Почему сразу

Почему сразу чушь?
Я ставил пакеты через .\configure, make && make install - некоторые некорректно написанные пакеты (сейчас уже не помню детали) затерли so файлы и ссылки от "оригинального" emerge- но с точки зрения emerge -s example - пакет был установлен. В качестве эксперимента попробуйте стереть какой-нибудь второстепенный /lib/*.so файл или подправьте ("случайно") в пакете ссылку - emerge -uv такие вещи не находит

эти комманды

эти комманды просто ищуют по дереву пакетов.
из-за таких проблем очень не рекомендуется ставить напрямую из исходников. если это всёже необходимо - нужно ставить в префикс.
теперь найти что-то очень сложно.
поидее можно сочинить скрипт который будет использовать equery из пакета gentoolkit, или посмотреть на пакет udept.
можно просто пересобрать всё, но возможно останется мусор
emerge -e world

.

Кажется, в app-portage/portage-utils я что-то встречал. Там много всего, не помню точно

Всё верно. qcheck

Всё верно. qcheck из app-portage/portage-utils

Может и велосипед, а может и нет:

ls -1 /var/db/pkg/*/*/CONTENTS | \
    while read P ; do \
        pkg=$(echo $P | cut -d'/' -f 5,6)
        egrep "^obj" $P | \
           while read s ; do  \
               file=$(echo $s |cut -d" " -f2) ;
               md5=$(echo $s |cut -d" " -f3) ;
               if [[ -e "$file" ]] ; then
                    [[ $(md5sum "$file" | cut -d" " -f1) != "$md5"  ]] \
                         && echo "(bad) $pkg = $file"
               else
                 echo "(not) $pkg = $file" ; \
               fi
    done ; done

*Вставляется в ком.строку как есть. Расчитана на bash.

FOUND!! http://www.gentoo.org

FOUND!!

http://www.gentoo.org/doc/en/gentoolkit.xml - equery check делает то, что надо

Мда, про

Мда, про существование prelink сия тулза не подозревает.

Да нет, у меня

Да нет, у меня работает и всегда работало... Так что подозревает )

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".