RPMを使用して別のコンピュータにインストールしようとすると、常に失敗する仕様ファイルを編集しようとします。 CentOSを使用しています。これは間違っています。
error: Failed dependencies:
perl(ActsUtil) is needed by my_program
perl(ParseBishop) is needed by my_program
どちらのファイルも RPM の依存関係です。問題は、これら2つのファイルが実際にRPMパッケージに提供されることです。どちらのファイルも.pmファイルです/opt/mysoftware/bin
。rpm - ivh --nodeps mysoftware
しかし、私はこの方法を使うのが好きではありません。だから仕様ファイルを修復してみました。以下は私が試したいくつかのコードです。
最初の試み
Summary:....
Name:..
Version:..
....
....
Provides: perl(ParseBishop), perl(ActsUtil)
...
...
%install
...
...
%changelog
2回目の試み
Summary:....
Name:..
Version:..
....
....
Provides: ParseBishop, ActsUtil
...
...
%install
...
...
%changelog
3回目の試み
Summary:....
Name:..
Version:..
....
....
Provides: ParseBishop.pm, ActsUtil.pm
...
...
%install
...
...
%changelog
4回目の試み
Summary:....
Name:..
Version:..
....
....
Provides: /opt/mysoftware/bin/ParseBishop, /opt/mysoftware/bin/ActsUtil
...
...
%install
...
...
%changelog
"provide"コマンドを誤って実行しましたか?それとも、すでに問題を間違って解決していますか?
答え1
解決策が見つかりました。問題は、私の提案が間違った地域にあることです。コードの上にある必要があります。
Summary:....
Name:..
Version:..
Provides: perl(ParseBishop), perl(ActsUtil)
...
...
%install
...
...
%changelog
これを確認するために。私は rpm -qp --provides mysoftware.rpm
内蔵フォルダに入れて使用しました。私のパッケージに提供されているものが表示されます。すべての助けに感謝します。
答え2
rpm -i --nodeps my_program.rpm
すべての依存関係の問題はスキップされます。
答え3
事前リクエスト?
リストを作成する必要があるかどうか疑問に思いますPreReqs
。
Prereqは、PreReqを含むパッケージの前にインストールされるという点でのみrequireとは異なります。 PreReq はパッケージオーダーにのみ使用されます。それ以外の場合、PreReqはRequires:依存関係とまったく同じです。
源泉:http://rpm5.org/docs/api/dependent.html
はい
PreReq: perl(ActsUtil), perl(ParseBishop)
必要
Requires
このRPMインストールにこれらのPerlモジュールが実際に必要な場合は、オンラインにする必要がありますかProvides
?
はい
Requires: perl(ParseBishop), perl(ActsUtil)
ファイルのみ?
インストール中に提供された.pmファイルの場合、これらのファイルはRPMのインストールとマニフェストを除いてどこにもリストする必要はありません。
これに依存する他のRPMには、このRPMのみが必要です。