インストールされているパッケージを一覧表示するには、通常、2つのうちの1つを実行します。
昔ながらの方法はrpm -qa | grep <whatever I look for>
それを使うことです。
しかし、最近はパッケージをもっと完璧に見せたいので今からdnf list --installed <whatever I look for>
。
ところで、結果を見ると、いくつか理解できない部分があります。
次の例を考えてみましょう。
# dnf list --installed zsh
Last metadata expiration check: 0:13:25 ago on Mon Jul 11 05:48:04 2016.
Installed Packages
zsh.x86_64 5.2-5.fc24 @@commandline
(実際の印刷物のスペースは広いです。)
したがって、結果項目は「パッケージ」「バージョン」「repo」です。
私の場合は、次のようになります。
- パッケージ:zsh.x86_64
- バージョン: 5.2-5.fc24
- 倉庫:@@コマンドライン
結果表はここまで理解していますが、リポジトリ名の前にある「@@」2つがどういう意味か混乱します。
また、「commandline」は、パッケージがコマンドラインからインストールされたことを示します(RPMをダウンロードして実行)。dnf install whatever.rpm
コマンドラインから、等。 )。しかし、zsh
インストールが完了したと確信していますdnf install zsh
。
しかし、それはすべてではありません。
システムのリポジトリに複数のパッケージがインストールされていますが@System
(インストールされていない場合もあります@fedora
)、同様のエントリがあります。fedora
@
@@commandline
それでは、リポジトリ名の前またはこの単語は@
正確に何を意味しますか?@@
@@commandline
リポジトリからインストールしたと確信していますが、なぜそれほど多くの重要なパッケージをインストールしましたか?
ベストアンサー1
ここに少し光を投げてみましょう。
dnf list all | less
すべてのパッケージ(インストール済みパッケージと利用可能なパッケージの両方)を表示します。出力には、「インストール済みパッケージ」と「使用可能パッケージ」の2つの部分があります。すべての「インストール済みパッケージ」の前には@記号が付いていますが、「利用可能なパッケージ」はそうではありません。そのため、@
パッケージがインストールされているという印があると思います。パッケージがインストールされたが元のリポジトリが削除された場合は、@@
フラグが提供されると思います。
dnf ソースコードは以下でホストされています。https://github.com/rpm-software-management/dnf。 srcコードをダウンロードした後にディレクトリからgrep commandline -ri .
aを実行すると、何も返されません。しかし、githubページにはこれに関する言及があります。
パッケージ管理には、RPM、libsolv、および Hawkey ライブラリを使用します。
だからHawkeyを見てみると、次の場所にある同じプロジェクトでホストされます。https://github.com/rpm-software-management/hawkey。コードを見ると、grep -ri commandline .
いくつかの結果が表示されます。
./src/types.h:#define HY_CMDLINE_REPO_NAME "@commandline"
./hawkey.spec:- fix: commandline RPMs do not provide their files (RhBug:1112810) (Ales Kozumplik)
だからパッケージcommandline
から。コマンドに表示されるhawkey
理由は、コードが正しく機能していないようです。@comandline
dnf list
dnf
hawkey