2012-11-05 34 views
26

Tôi đang cố gắng tạo gói .rpm. Tôi chỉ cần làm theo các bước để làm điều đó. Cho đến bây giờ tất cả các bước đã biến mất nhưng bây giờ tôi chỉ bị mắc kẹt với bước này. Tôi chỉ cần chạy lệnh sau đây và đã nhận lỗi này:Tự động cài đặt phụ thuộc xây dựng trước khi tạo gói 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 

Tôi đang sử dụng fedora-15. Làm thế nào để giải quyết lỗi này?

Làm cách nào tôi cài đặt tất cả các trường hợp trong quá trình cài đặt gói src.rpm. Có thể không?

Trả lời

48

Bạn có thể sử dụng lệnh yum-builddep từ gói yum-utils để cài đặt tất cả phụ thuộc xây dựng cho gói.

Những lập luận có thể là con đường để spec file, đường dẫn đến RPM nguồn hoặc tên của gói mà tồn tại như RPM nguồn trong một kho lưu trữ cấu hình, ví dụ:

yum-builddep my-package.spec 

hoặc

yum-builddep my-package.src.rpm 

Điều tương tự có thể đạt được trên các phiên bản Fedora mới hơn sử dụng dnf làm trình quản lý gói của họ bằng cách đảm bảo rằng dnf-plugins-core được cài đặt và sau đó thực hiện:

dnf builddep my-package.spec 

hoặc

dnf builddep my-package.src.rpm 
+0

Cảm ơn, bạn có thể cho tôi bất kỳ cú pháp mẫu nào cho cùng một liên kết có liên quan không? – juned

+5

Tôi đã mô tả khá nhiều cách bạn chạy nó! Ngoài điểm dừng chân đầu tiên của bạn, như đối với bất kỳ lệnh linux nào, sẽ là 'man yum-builddep' mà chắc chắn sẽ được khai sáng. – TomH

0

yum-builddep dường như không hoạt động nếu bạn sử dụng gương không phục vụ RPM nguồn. Điều này có thể không xử lý mọi trường hợp, nhưng nó thường làm việc cho tôi:

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

nơi <rpmbuild> là lệnh rpmbuild của bạn (ví dụ, rpmbuild -ba foo.spec).

Các vấn đề liên quan