2012-11-05 16 views
26

Sto provando a creare un pacchetto .rpm. Ho appena seguito i passaggi per farlo. Fino ad ora tutti i passaggi erano andati bene, ma ora ho solo bloccato con questo passaggio. Ho appena eseguito il seguente comando e ottenuto questo errore:Installare automaticamente le dipendenze di compilazione prima di creare un pacchetto 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 

Sto usando Fedora-15. Come risolvere questo errore?

Come installare tutte le depenzioni durante l'installazione del pacchetto src.rpm. È possibile?

risposta

48

È possibile utilizzare il comando yum-builddep dal pacchetto yum-utils per installare tutte le dipendenze di compilazione per un pacchetto.

Gli argomenti possono essere sia i percorsi a spec file, percorsi di RPM di origine oi nomi dei pacchetti che esistono come gli RPM sorgenti, in un repository configurata, ad esempio:

yum-builddep my-package.spec 

o

yum-builddep my-package.src.rpm 

La stessa cosa si può ottenere con le versioni più recenti di Fedora che usano dnf come gestore pacchetti assicurandosi che sia installato dnf-plugins-core e quindi:

dnf builddep my-package.spec 

o

dnf builddep my-package.src.rpm 
+0

Grazie, puoi fornirmi una sintassi di esempio per lo stesso collegamento o per qualsiasi collegamento pertinente? – juned

+5

Ho già descritto molto bene come lo si esegue! Al di là del quale il tuo primo stop, come per qualsiasi comando linux, sarebbe 'man yum-builddep' che senza dubbio sarà illuminante. – TomH

0

yum-builddep non sembra funzionare se lo specchio si utilizza non serve RPM di origine. Questo non può gestire tutti i casi, ma di solito funziona per me:

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

dove <rpmbuild> è il vostro comando rpmbuild (ad esempio, rpmbuild -ba foo.spec).