Buildreq: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
__NOTOC__ | |||
[[Категория:Devel]] | [[Категория:Devel]] | ||
[[Категория:Sisyphus]] | [[Категория:Sisyphus]] | ||
<tt>buildreq</tt> — утилита для автоматизированного поиска сборочных зависимостей пакетов. Находится в пакете <tt>rpm-utils</tt>. | <tt>buildreq</tt> — утилита для автоматизированного поиска сборочных зависимостей пакетов. Находится в пакете <tt>rpm-utils</tt>. | ||
Версия от 07:45, 21 августа 2008
buildreq — утилита для автоматизированного поиска сборочных зависимостей пакетов. Находится в пакете rpm-utils.
Использование:
$ buildreq example.spec
Принцип действия
buildreq производит почти такую же работу, как и при обычной сборке пакета. В процессе сборки программы он отслеживает все используемые пакеты и по окончанию сборки добавляет в спек тег BuildRequires с отслеженными сборочными зависимостями.
buildreq не обладает искусственным интеллектом, и поэтому может ошибаться в «большую» сторону, добавляя в зависимости ненужные пакеты (результатом работы являются достаточные, но не необходимые пакеты). При этом buildreq не пропускает необходимые зависимости.
Особенности использования
buildreq затирает уже имеющийся тэг BuildRequires, но не трогает равносильный ему тэг BuildPreReq — этим можно пользоваться в своих целях.
По умолчанию отслеживаются лишь зависимости для стадий %prep и %build. Это можно изменить ключом -b, указывающим стадию, после которой надо остановиться. Так, -bi указывает, что отслеживать надо стадии %prep, %build и %install.
Для трассировки упоминаний файла/пакета во время работы buildreq (например, для определения того, почему какой-то пакет оказывается в сборочных зависимостях) можно пользоваться ключами --trace-file=FILE и --trace-package=PACKAGE).
Известные проблемы
Date: Tue, 18 Oct 2005 01:10:33 +0400 From: Alexey Tourbin <at@> To: ALT Devel discussion list <devel@> Subject: [devel] Re: webalizer-2.01.10-alt6 On Mon, Oct 17, 2005 at 10:30:28PM +0300, Michael Shigorin wrote: > On Mon, Oct 17, 2005 at 11:23:38PM +0400, Dmitry V. Levin wrote: > > > И что с этим предлагается делать? > > Просто добавить apache-devel в список сборочных зависимостей. > М-да. Даже мысли не допустил, что его там могло не быть... Это известная засада: buildreq "не ловит" файлы в /etc/rpm/macros.d. Workaround: где-нибудь в этих макросах делать stat за пределы /etc/rpm/macros.d. stat будет срабатывать только при раскрытии макросов. В alternatives вроде такое было.
Лицензия
GPLv2 or later.