rpm
リポジトリにすでに存在するパッケージと同じ名前のパッケージをビルドし、次のコマンドを入力すると、
$ dnf info package
このコマンドは、ビルドパッケージに関する情報のみを表示します。上記のコマンドを実行しdnf builddep package
、情報をインポートするパッケージを選択できるようにしたいです。
別の名前を指定せずにrepoパッケージと独自のビルドパッケージを区別する方法はありますか?
付録: ビルドされたパッケージには最新バージョンがあります。
答え1
出力の行と内容を見てくださいRepo
。これらはあなたに言うでしょう:From repo
dnf info
Repo
利用可能なパッケージがあるリポジトリを教えてくれます。パッケージの場合インストール済みそれからそれはあなたに言うでしょう@System
。From repo
インストールされているパッケージにのみ表示されます。インストールされたパッケージのソースリポジトリを提供します。リポジトリ名(またはfedora
)updates
または@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 info
RPM、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