$ ( for i in $(urpmq --whatrequires libllvm6.0); do urpmq --sourcerpm "$i" | awk -F ': ' '{print $2}' | rev | cut -d '-' -f 3- | rev ; done ) | sort | uniq
ldc
lld
llvm
mesa
Более быстро работающий вариант, но ничего не выдает, если у хотя бы одного из пакетов в списке нет обратных зависимостей:
urpmq --whatrequires --sourcerpm lib64krb5_3 lib64kdb5_8 lib64kadm5srv_mit10 lib64kadm5clnt_mit10 lib64krad0 lib64krb5support0 lib64k5crypto3 lib64gssrpc4 lib64gssapi_krb5 | awk -F ': ' '{print $2}' | rev | cut -d '-' -f 3- | rev | sort -u
Обратите внимание, что при обновлении мажорной версии библиотеки, например, когда было lib64kdb5_8, а стало lib64kdb5_9, обратные зависимости нужно искать у старой версии, lib64kdb5_8.
1)
awk -F '-' '{print $1}'
неправильно для пакетов с дефисом в названии сорц-пакета2) Еще пример, для нескольких библиотек:
( for p in lib64krb5_3 lib64kdb_ldap1 lib64kdb5_9 lib64kadm5srv_mit11 lib64kadm5clnt_mit11 lib64krad0 lib64krb5support0 lib64k5crypto3 lib64gssrpc4 lib64gssapi_krb5 lib64krb5 ; do ( for i in $(urpmq --whatrequires $p ); do urpmq --sourcerpm "$i" | awk -F ': ' '{print $2}' | awk -F '-' '{print $1}'; done ) | sort | uniq ; done ) | sort | uniq
[…] Какие исходные пакеты нужно пересобрать в Росе при обн… 21.12.2018 […]