Подтвердить что ты не робот

Автоматически устанавливать зависимости сборки перед созданием пакета 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. Возможно ли это?

4b9b3361

Ответ 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).