2012-11-05 12 views
26

Próbuję zbudować pakiet .rpm. Właśnie podjąłem kroki, aby to zrobić. Do tej pory wszystkie kroki nie były dobre, ale teraz po prostu utknąłem z tym krokiem. Właśnie uruchomiono następujące polecenia i dostał ten błąd:Automatyczne instalowanie zależności kompilacji przed zbudowaniem pakietu 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 

używam fedora-15. Jak rozwiązać ten błąd?

W jaki sposób mogę zainstalować wszystkie depencencies podczas instalacji pakietu src.rpm. Czy to możliwe?

Odpowiedz

48

Można użyć polecenia yum-builddep z pakietu yum-utils, aby zainstalować wszystkie zależności zależności pakietu.

Argumenty może być albo ścieżki spec plików ścieżki do RPM źródła lub nazwy pakietów, które występują jako RPM źródłowych skonfigurowany składowania, na przykład:

yum-builddep my-package.spec 

lub

yum-builddep my-package.src.rpm 

To samo można osiągnąć w nowszych wersjach Fedory, które używają dnf jako menedżera pakietów, upewniając się, że zainstalowano dnf-plugins-core, a następnie wykonując:

dnf builddep my-package.spec 

lub

dnf builddep my-package.src.rpm 
+0

Dzięki, czy możesz podać przykładową składnię tego samego lub odpowiedniego linku? – juned

+5

Już prawie opisałem, jak to działa! Poza tym twoim pierwszym przystankiem, jak w przypadku każdego polecenia systemu Linux, będzie "man yum-builddep", który bez wątpienia będzie oświecający. – TomH

0

yum-builddep nie wydaje się działać, jeśli lustro użyć nie służy RPM źródłowych. To nie może obsłużyć wszystkie przypadki, ale zazwyczaj działa na mnie:

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

gdzie <rpmbuild> to komenda rpmbuild (np rpmbuild -ba foo.spec).

Powiązane problemy