Summary: | apt-get build-dep не может определиться с виртуальной build-requires | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Konstantin Pavlov <thresh> |
Component: | apt | Assignee: | Ivan Zakharyaschev <imz> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | boot.efi, boyarsh, glebfm, imz, ldv, placeholder, rider |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Konstantin Pavlov
2008-09-05 14:00:53 MSD
Надо заметить, что это старый и хорошо известный баг (http://b23.ru/l3k). Когда-то его уже чинили (http://b23.ru/l3y), но потом отломали снова. Текущий хозяин apt-rpm Panu Matilainen признаётся, что build-dep надо переписать нафиг (http://b23.ru/l3h). Простейший вариант (вынуть из пакета зависимости и сделать на них install) не работает, потому что смысл получается другой: install подразумевает обновление имеющихся пакетов, а build-dep должен по возможности удовлетворяться тем, что есть. Почитал код. Особенная прелесть заключена в последних строчках функции DoBuildDep в apt-get.cc: if(condition == true) return true; return true; Чудеса копи-пейстного программирования (ср. функцию DoInstall). (In reply to comment #1) > Простейший вариант (вынуть из пакета зависимости и сделать на них install) не > работает, потому что смысл получается другой: install подразумевает обновление > имеющихся пакетов, а build-dep должен по возможности удовлетворяться тем, что > есть. Вот реализация этого простейшего workaround: rpm -qp NAME.src.rpm -R | fgrep -v 'rpmlib(' | tr -d ' ' | xargs apt-get --yes install # apt-get build-dep curl Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено E: зависимость Build-Depends для curl-7.86.0-alt1.src.rpm не может быть удовлетворена, потому что отсутствует пакет rpmlib(PayloadIsLzma). Собственно вопрос возник опять - как поставить в систему сборочные зависимости для удовлетворения процесса сборки какого-то пакета. Можно придумывать workaround'ы, но лучше всё-таки заставить работать apt |