Автоматически устанавливать зависимости сборки перед созданием пакета RPM
Я пытаюсь создать пакет .rpm. Я только что выполнил шаги, чтобы сделать это. До сих пор все шаги прошли нормально, но теперь я просто застрял с этим шагом. Я просто выполнил следующую команду и получил эту ошибку:
rpmbuild -ba asterisk.spec
error: Failed build dependencies:
gtk2-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
libsrtp-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
[... more ...]
freetds-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
uw-imap-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
Я использую fedora-15. Как разрешить эту ошибку?
Как я устанавливаю все зависимости при установке пакета src.rpm
. Возможно ли это?
Ответы
Ответ 1
Вы можете использовать команду yum-builddep
из пакета yum-utils
для установки всех зависимостей сборки для пакета.
Аргументами могут быть либо пути к файлам спецификаций, пути к исходным RPM, либо имена пакетов, которые существуют как исходные RPM в настроенном репозитории, например:
yum-builddep my-package.spec
или
yum-builddep my-package.src.rpm
То же самое можно сделать и в более новых версиях Fedora, которые используют dnf
в качестве менеджера пакетов, убедившись, что dnf-plugins-core
установлен, а затем делает:
dnf builddep my-package.spec
или
dnf builddep my-package.src.rpm
Ответ 2
yum-builddep
, похоже, не работает, если используемое вами зеркало не поддерживает исходные RPM. Это может не обрабатывать все случаи, но обычно это работает для меня:
sudo yum install -y $(<rpmbuild> | fgrep 'is needed by' | awk '{print $1}')
где <rpmbuild>
- ваша команда rpmbuild
(например, rpmbuild -ba foo.spec
).