(免責事項:これらの情報を提供することはできません。これらのことを実際に説明するドキュメントを私は見たことがないためです。従うべき情報は、検査、ブラックボックスの実験、無計画で推測できたことにすぎません。試行錯誤、そして昔ながらの当て推量。また、公正な警告、それは長すぎることを説明するのに過度の説明です。)
DNFは@を追加して、インストールされたパッケージがからインストールされたリポジトリをdnf list
コンテキストで示します。あなたが指摘したように:
私のシステムには、リポジトリ@ System、@ fedora(ただし、@なしのfedoraもあります)、および@@ commandlineなどのパッケージからインストールしたパッケージがいくつかあります。
しかし実際には、すべてのパッケージがソースとして@ -repoを表示fedora
しているため、インストール済みリストにパッケージが含まれることはありません。(実行sudo dnf list installed
して検査することで確認できます。@記号が1つもないリポジトリは表示されません。)を使用してパッケージの情報を表示するとdnf info
、「From repo:
」フィールドには、を使用しないリポジトリ名が表示され@
ます。(したがって、「From repo: fedora
」は絶対に可能であり@fedora
、インストール済みリストと同等です。)
ただし、一部のリポジトリには、正面に記号が付いてい@
ます。JohnKochがホークソースで発見したように、「@ commandline」は「commandline repo」の「repo name」として定義されています。そのため@@commandline
、dnf list
リストでは単にインストールされたパッケージを示していますFrom repo: @commandline
。紛らわしいことに、独自の@記号で始まる名前が付けられたリポジトリです。
dnf info
インストールされているすべてのパッケージでが表示されます。Repository: @System
これは、別の@
名前の仮想リポジトリです。@System
現在インストールされているパッケージのセットを保持する仮想リポジトリと、パッケージがどこから来たのか、どのリポジトリからも来なかっ@commandline
た仮想ソースのリポジトリと思われます。
意味@commandline
と@System
し、互いの関係は、私が最初にこの答えを書いてから変更されているようです。いくつかの点で、それはより一貫性があり、@commandline
使用方法についての私の以前の異議のいくつかに対処します。私はもう見ない任意のからのものであると記載されているインストールされたパッケージを@@System
、アウト・オブ・バンドのインストールは確かに今表示されますFrom repo: @commandline
(@@commandline
リストコンテキストで)。dnf info
アウトオブバンドでインストールされたパッケージでは、通常、次のように表示されます。
$ dnf info remi-release
Installed Packages
Name : remi-release
---✀---
Repository : @System
From repo : @commandline
私がやる場合dnf reinstall remi-release
(パッケージがあるためであるにremi
レポ)、それがに変わります。
$ dnf info remi-release
Installed Packages
Name : remi-release
---✀---
Repository : @System
From repo : remi
ソースリポジトリに関するもう1つのこと:From repo:
フィールドにリストされているリポジトリは、常に現在のリポジトリコンテキストに存在するリポジトリです。つまり、パッケージのインストールソースは、リポジトリ名を含む文字列だけではありません。インストールされたパッケージは、システムに存在する(または存在した)提供リポジトリのIDにリンクされます。
ほとんどのリポジトリはバージョン管理されているため、Fedoraの新しいリリースごとに再定義されます。(たとえば、 " fedora
"リポジトリは新しいリリースを構成するパッケージのセットになるためfedora
、以前のリリースで存在していた " "とは完全に異なるリポジトリです。)したがって、システムのアップグレードが行われるたびに、多くの古いリポジトリのID無効になります。
@commandline
ソースリポジトリとして存在しなくなったリポジトリからインストールされたパッケージを委任するために使用されるDNF(またはhawkey)。「ありがたい」と言います。これは(ありがたいことに)もう行われていないためです。存在しないレポジトリからインストールされたインストール済みパッケージでは、ソースが@@commandline
/ として表示されなくなりFrom repo: @commandline
ます。実際には、dnf info
彼らはもはや持っていることを示して任意のソースレポを。たとえば、sitecopy
廃止されたFedoraパッケージでした。私はからそれをインストールしfedora
たりupdates
、レポ7つのまたは8のリリース前に、まだそれがインストールされています:
$ dnf info sitecopy
Installed Packages
Name : sitecopy
Version : 0.16.6
Release : 14.fc22
Architecture : x86_64
Size : 373 k
Source : sitecopy-0.16.6-14.fc22.src.rpm
Repository : @System
「From repo:
」は表示されていません。
これは紛らわしいことですdnf list installed
が、そのパッケージ(およびそのような他のパッケージ)の横に@System
(1つ@
)が表示されます。そのため、ある列では、矛盾が別のものと交換されました。その列は、常に@
先頭に追加されたソースリポジトリではないからです。それでも、私は現状を好む。
脚注
- 「...表示されているもの...」
(時々表示されます。「利用可能なパッケージ」は、dnf list
実行のたびに表示されるとは限りません。パッケージのインストール済みバージョンが利用可能な最良のバージョンである場合、「インストール済みパッケージ」の下にリストされます。そのため、「利用可能なパッケージ」の下にリストすることは冗長になります。使用
--showduplicates
すると、インストールされているかダウンロード可能かに関係なく、バージョンに関係なく、すべての既知のインスタンスを含む「利用可能なパッケージ」セクションが強制されます。
dnf
これについて信じられないほど沈黙しているようです。'@'がインストール済みのパッケージを示しているとしますが、 '@@'は非リポジトリソースから手動でインストールされたということですか?私は誰かが明確にしてくれることを本当に望みます。