2012-11-05 90 views
26

我正在嘗試構建.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軟件包時安裝所有的依賴關係。可能嗎?

回答

48

您可以使用yum-utils軟件包中的yum-builddep命令來安裝軟件包的所有生成依賴關係。

的參數可以是路徑規格文件,路徑源的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 
+0

謝謝,你能給我任何相同或任何相關鏈接的任何示例語法? – juned

+5

我已經非常詳細地描述了你如何運行它!除此之外,對於任何Linux命令而言,您的第一站將是'man yum-builddep',這無疑是有啓發性的。 – TomH

0

yum-builddep似乎並沒有工作,如果你使用的鏡子不提供源的RPM。這可能不是處理所有的情況,但通常爲我工作:

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

其中<rpmbuild>是您rpmbuild命令(例如,rpmbuild -ba foo.spec)。