Centos / RHELで使用されていないリポジトリを識別する方法はありますか?
私のCentosシステムにはかなり多くのリポジトリがインストールされていますが、実際に必要なリポジトリと不要なリポジトリが何であるかはわかりません。
インストールされているパッケージのリストを使用し、まだ使用されているリポジトリと未使用のリポジトリを識別するレポートを生成する良い方法はありますか?
答え1
お持ちの場合オペレーティングシステム6、次のコマンドは、インストールされたRPMがどのリポジトリから来たかを示します。
rpm -qa | xargs yum info | grep '^From repo' | sort | uniq -c | sort -rn
お持ちの場合セントOS 5または、必要な情報を得るための100%確実な方法はありません。現在インストールされているRPMを確認し、それを設定したさまざまなリポジトリに関連付ける必要があります。これを関連付ける方法はいくつかあります。
repoforge/rpmforge や IUS などの一部のリポジトリは、RPM にサフィックスがあるため、次のように整理できます。
rpm -qa release='*rf*'
パッケージャ、ビルドホスト、署名、またはベンダーをさまざまなリポジトリに関連付けます。たとえば、ビルドホストに「fedoraproject.org」がある場合は、おそらくEPELリポジトリにあります。あるいは、ベンダーが「RPM Fusion」としてリストされている場合は、rpmfusionリポジトリに存在する可能性があります。各リポジトリは実際にこれらのフィールドを使用し、そのフィールドに入力する内容が異なる場合、用語は異なります。
理論的には、パッケージ、ビルドホスト、ベンダーはすべて偽装される可能性があるため、セキュリティ要件に応じてそれらに依存しない可能性がありますが、誰かが悪意のある意図でこれを行う可能性は低くなります。署名が最も安全です。
買戻契約の内容は次のとおりです。すべてのrpmを照会し、次のように出力をソートします。
rpm -qa --queryformat '%{vendor}\t%{name}\n' | sort
- パッカー - %{Packager}
- ビルドホスト - %{buildhost}
- 署名 - %{RSAHEADER:pgpsig}
- サプライヤー - %{サプライヤー}
これCentOS Wikiエントリ役に立つかもしれません。
答え2
どのリポジトリかを調べてください。パッケージがインストールされたら、次の作業を実行できます。
repoquery --installed --qf '%{ui_nevra} %{ui_from_repo}' -a
...または要約すると、次のようになります。
repoquery --installed --qf '%{ui_from_repo}' -a | sort | uniq -c
..."--installed" スイッチを削除すると、どのリポジトリであるかがわかります。最新バージョンのパッケージが必要です(したがって、repos.fooとbarがXYZを提供している場合は、最新バージョンを提供するパッケージのみが一覧表示されます)。これはおそらくあなたが望むものに近いです。迅速にチェックするには、「yum repolist」を使用して各リポジトリで利用可能なパッケージの数を確認できます。 ...それが価値があるかどうかを証明するのに十分です。