web-dev-qa-db-ja.com

追跡されていないリポジトリのyumキャッシュを消去する方法は?

RHEL7サーバーをSatellite 6.5で管理しています。

コマンド

yum clean all --verbose 

ntrackedリポジトリのいくつかのMbのyumキャッシュを示します。

yum clean allはこのキャッシュを消去しません。そうすることは可能ですか、それともrm -rf /var/cache/yum/* && yum check-update

4
dr_

過去にyum clean allの機能にいくつかの機能強化が行われましたが(特に https://bugzilla.redhat.com/show_bug.cgi?id=135708 )、あなたは完全に正しいですyum clean allが適切に機能しないEdgeケースがあること。

厄介ではありますが、rm -rf /var/cache/yumは毎回トリックを実行します。

マニュアルページには、追跡されていないリポジトリのクリーニングに関する短いメッセージがあります。

<...>また、追跡されていない(構成されていない)リポジトリは自動的にクリーンアップされないことにも注意してください。

そして

キャッシュ全体を一度に消去するには、ファイルを手動で削除するのが最も簡単な方法です。 cachedir設定に応じて、これは通常、変数をシェルのワイルドカードとして扱い、一致するディレクトリを再帰的に削除することを意味します。たとえば、cachedirが/ var/cache/yum/$ basearch/$ releaseverの場合、/ var/cache/yumディレクトリ全体を削除する必要があります。これを行うと、yumは次回の実行時に必要に応じてキャッシュを再構築します(これにはしばらく時間がかかる場合があります)。

再構築に時間がかかる最後のポイントについては、rm -rf /var/cache/yum&& yum makecacheでフォローして、ディレクトリを適切に再作成し、次のyum呼び出しで長時間待機しないようにすることができます。ただし、makecachemakecache fastの違いに注意してください。ほとんどの場合、違いがわかりません。 yum makecache fastは、リポジトリが最新であることのみを確認します。 yum makecacheは実際にメタデータをダウンロードします。

6
Edward

利用可能な別のオプションがあります:

# yum --enablerepo='*' --verbose clean all

ここで説明します:

# man yum
...
CLEAN OPTIONS
   The following are the ways which you can invoke yum in clean mode.
   Note that "all files" in the commands below means "all  files  in currently
   enabled repositories".  If you want to also clean any (temporarily)
   disabled repositories you need to use --enablerepo='*' option.

ただし、削除されたリポジトリのキャッシュ(「追跡されていない」ことを意味します)は保持されます。

Disk usage under /var/cache/yum/*/* after cleanup:
4.0 k  enabled repos:
0      disabled repos
145 M  untracked repos
2
Martin Zeitler