dnf repoと組み込みパッケージを区別する方法は?

dnf repoと組み込みパッケージを区別する方法は?

rpmリポジトリにすでに存在するパッケージと同じ名前のパッケージをビルドし、次のコマンドを入力すると、

$ dnf info package

このコマンドは、ビルドパッケージに関する情報のみを表示します。上記のコマンドを実行しdnf builddep package、情報をインポートするパッケージを選択できるようにしたいです。

別の名前を指定せずにrepoパッケージと独自のビルドパッケージを区別する方法はありますか?

付録: ビルドされたパッケージには最新バージョンがあります。

答え1

出力の行と内容を見てくださいRepo。これらはあなたに言うでしょう:From repodnf info

  • Repo利用可能なパッケージがあるリポジトリを教えてくれます。パッケージの場合インストール済みそれからそれはあなたに言うでしょう@System
  • From repoインストールされているパッケージにのみ表示されます。インストールされたパッケージのソースリポジトリを提供します。リポジトリ名(またはfedoraupdatesまたは@commandline手動でインストールされたRPMを表示します。

dnf builddepリポジトリで指定されたパッケージの最新バージョンのビルド依存関係をインストールします。手動でインストールされたRPMは何もしません。

答え2

dnf builddep以下を使用してインストールする場合特定パッケージ、より具体的です。つまり、次のすべてを実行できます。

$ sudo dnf builddep somepackage-1.2.3
$ sudo dnf builddep somepackage-1.2.3-9.fc30
$ sudo dnf builddep /path/to/some/uninstalled/somepackage-1.2.4-1.fc30.$arch.rpm
$ sudo dnf builddep /path/to/some/unbuilt/somepackage-1.2.4-2.fc30.srpm
$ sudo dnf builddep /path/to/some/unbuilt/somepackage.spec

dnf info最初の2つについては上記と同じです。 (やや驚くべきことに、dnf infoRPM、SRPM、または標準ファイルパスでは実行できません。できるrpm -q -i -p /path/to/uninstalled.{rpm,srpm}フラグを含めることだけを忘れないでください。-pしかし、そんなことはありませんdnf info。 )

パッケージソースが完全に明確ではない唯一のケースは、実際には2つの異なるリポジトリにパッケージがある場合です。精密同じネットワークビデオレコーダー。

dnf download --sourceたとえば、Fedoraリポジトリのパッケージ用にSRPMを作成し、をupdates使用してローカルRPMをビルドrpmbuild -rbし、それを自分のパッケージに対して維持するローカルリポジトリに追加したとします。デフォルトでは、これはsomepackage-1.2.5-1.fc30.x86_64.rpmリポジトリとまったく同じですupdates

このあいまいさのため、私のドキュメントには$HOME/.rpmmacros次のものが含まれています。

%dist           .ferd%{fedora}

これにより、ローカルでビルドされたバージョンが代わりに表示されるため、区別できます。somepackage-1.2.5-1.ferd30.x86_64.rpm.fc30

関連情報