RPMで仕様ファイルを編集する

RPMで仕様ファイルを編集する

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/binrpm - 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のみが必要です。

関連情報