web-dev-qa-db-fra.com

Installer automatiquement les dépendances de construction avant de créer un paquet RPM

J'essaye de construire un paquet .rpm. Je viens de suivre les étapes pour le faire. Jusqu'à présent, toutes les étapes étaient finies mais maintenant je me suis contenté de cette étape. Je viens d'exécuter la commande suivante et j'ai cette erreur:

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

J'utilise Fedora-15. Comment résoudre cette erreur? 

Comment j'installe toutes les dépendances lors de l'installation du paquet src.rpm. C'est possible?

35
Juned

Vous pouvez utiliser la commande yum-builddep du package yum-utils pour installer toutes les dépendances de construction d'un package.

Les arguments peuvent être des chemins vers des fichiers de spécification, des chemins vers des RPM sources ou les noms de packages existant en tant que RPM sources dans un référentiel configuré, par exemple:

yum-builddep my-package.spec

ou

yum-builddep my-package.src.rpm

La même chose peut être accomplie sur les versions plus récentes de Fedora qui utilisent dnf comme gestionnaire de paquets en s'assurant que dnf-plugins-core est installé, puis en effectuant:

dnf builddep my-package.spec

ou

dnf builddep my-package.src.rpm
58
TomH

yum-builddep ne semble pas fonctionner si le miroir que vous utilisez ne sert pas les RPM sources. Cela peut ne pas gérer tous les cas, mais cela fonctionne généralement pour moi:

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

<rpmbuild> est votre commande rpmbuild (par exemple, rpmbuild -ba foo.spec).

0
jjlin