SpecTips/Requires: различия между версиями
м (+rpmlib(CompressedFileNames)) |
м (fix heading) |
||
Строка 1: | Строка 1: | ||
[[Category:RPM spec]] | [[Category:RPM spec]] | ||
== Автогенерируемые зависимости == | |||
В ALT RPM доступен и используется ряд механизмов автоматического порождения списков зависимостей -- установочные генерируются в конце сборки пакета, сборочные помогает выяснять и обновлять утилита [[buildreq]]. | В ALT RPM доступен и используется ряд механизмов автоматического порождения списков зависимостей -- установочные генерируются в конце сборки пакета, сборочные помогает выяснять и обновлять утилита [[buildreq]]. |
Текущая версия от 17:53, 13 сентября 2009
Автогенерируемые зависимости
В ALT RPM доступен и используется ряд механизмов автоматического порождения списков зависимостей -- установочные генерируются в конце сборки пакета, сборочные помогает выяснять и обновлять утилита buildreq.
Если в req/prov скриптах использовать опцию --verbose, то можно узнать что-нибудь интересное:
$ rpm -ql rpm-utils |file -NF$'\t' -f - |/usr/lib/rpm/shell.req.files |/usr/lib/rpm/shell.req -v 2>&1| head shell.req: /usr/bin/add_changelog: cat -> /bin/cat -> ... (via which) shell.req: /usr/bin/add_changelog: /bin/cat -> coreutils (via rpmdb)
Если пакет собирается хешером, то разрешение файловых путей в имена пакетов происходит не только по наличным в чруте пакетам, а и по содержанию $build/cache/contents/contents_index_bin.
Этот contents index как раз нужен, чтобы лучше искать зависимости вопреки минимальной сборочной среде и в ряде случаев давать более точные зависимости; например, зависимость на mutt должна разрешиться в /usr/bin/mutt, а не в mutt или mutt1.5, т.к. любой из них сгодится.
at@ внес много исправлений в find-package (это диспетчер, занимающийся поиском такого рода зависимостей), теперь в ряде "сложных" случаев результат будет более корректным. См. commit messages, там есть примеры с /sbin/ifup, openssl-config, arpsend и vim.
rpmlib(CompressedFileNames)
Это внутренние зависимости librpm, которые не попадают в базу данных, поскольку определяются самой библиотекой и, таким образом, могут измениться при установке другой версии librpm.