Rpm

在 RPM 中編輯 Spec 文件

  • September 29, 2016

我正在嘗試編輯一個規範文件,當我嘗試使用 RPM 在其他電腦上安裝它時總是失敗。我正在使用 CentOS。這是錯誤。

error: Failed dependencies:
perl(ActsUtil) is needed by my_program
perl(ParseBishop) is needed by my_program

這兩個文件都是 RPM 的依賴項。問題是,這兩個文件實際上是在 RPM 包中提供的。這兩個文件都是 .pm 文件,位於/opt/mysoftware/bin. 我知道可以使用rpm - ivh --nodeps mysoftware. 但我不喜歡使用這種方法。所以,我嘗試修復規範文件。這是我嘗試過的一些程式碼。

第一次嘗試

Summary:....
Name:..
Version:..
....
....
Provides: perl(ParseBishop), perl(ActsUtil)
...
...
%install
...
...
%changelog

第二次嘗試

Summary:....
Name:..
Version:..
....
....
Provides: ParseBishop, ActsUtil
...
...
%install
...
...
%changelog

第三次嘗試

Summary:....
Name:..
Version:..
....
....
Provides: ParseBishop.pm, ActsUtil.pm
...
...
%install
...
...
%changelog

第四次嘗試

Summary:....
Name:..
Version:..
....
....
Provides: /opt/mysoftware/bin/ParseBishop, /opt/mysoftware/bin/ActsUtil
...
...
%install
...
...
%changelog

我做錯了“提供”命令嗎?還是我解決問題的方法已經錯了?

我找到了解決方案。問題是我的提供在錯誤的區域。它應該位於程式碼的頂部。

Summary:....
Name:..
Version:..
Provides: perl(ParseBishop), perl(ActsUtil)
...
...
%install
...
...
%changelog

來驗證這一點。我 rpm -qp --provides mysoftware.rpm在內置文件夾中使用過。它將顯示我的包裹中提供的內容。感謝所有幫助。

rpm -i --nodeps my_program.rpm

將跳過任何依賴問題。

引用自:https://unix.stackexchange.com/questions/97369