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

3 ответа

Решение

Вы можете использовать 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

yum-builddep похоже, не работает, если используемое вами зеркало не обслуживает RPM с исходным кодом. Это может не обрабатывать все случаи, но обычно это работает для меня:

sudo yum install -y $(<rpmbuild> | fgrep 'is needed by' | awk '{print $1}')

где <rpmbuild> твой rpmbuild команда (например, rpmbuild -ba foo.spec).

О построении PHP - особенно phpbrew я использовал dnf builddep php, это сработало.

Другие вопросы по тегам