web-dev-qa-db-ja.com

クリーンアップする最良の方法Yumリポジトリ?

開発者がビルドをアップロードするカスタムYumリポジトリがあります。

問題は、しばらくすると古いバージョンで乱雑になることです。

古いバージョンを手動で削除するのはかなり面倒なので、自分で自動化しようとする前に、バージョン(推奨)またはアップロードの時間に基づいて古いRPMをクリーンアップするスクリプトがあるかどうか疑問に思います。

Xの最後のバージョンを単純に保存するように指定し、それ以外はすべて消去できるのが最善です。次に、cronを実行して、毎日実行させます。

任意のアイデアをありがとう。

10
SyRenity

「簡単な」方法は、すべてをディレクトリにダンプして実行することです。

rm $(repomanage --keep=2 --old /path/to/repo)
createrepo /path/to/repo

...もっと複雑な方法は、麹などを設定することです。ビルドを実行してリポジトリを作成します。

13
James Antill

Yum-utils RPMから「repomanage」ユーティリティを確認してください。それはまさにあなたが探しているものを実行します。

[root ~]# repomanage --help
usage:
  repomanage: manage a directory of rpm packages. returns lists of newest
            or oldest packages in a directory for easy piping to xargs
            or similar programs.
  repomanage [--old] [--new] path.


  options:
    -h, --help            show this help message and exit
    -o, --old             print the older packages
    -n, --new             print the newest packages
    -s, --space           space separated output, not newline
    -k KEEP, --keep=KEEP  newest N packages to keep - defaults to 1
    -c, --nocheck         do not check package payload signatures/digests
[root ~]#

アップロードが毎日行われる場合は、(アクセス/変更時間の観点から)一定の日数を超えて古い古いファイルを削除することを検討してみませんか?それらを見つけて削除してください。開発者がビルドをアップロードするときに、現在の月の名前をファイル名に入れるようにできる場合、ファイルがいわゆる「月年」でアップロードされたことはファイル名から直接意味があり、削除するだけで意味があります。ファイル名を見ることによって。スクリプトの自動化では、これらのファイルの削除を検討するか、前月と現在の月に一致するファイルを保持するだけで簡単になります。ちょっとした考え。

0
Nikhil Mulley

ビルドの識別に使用するバージョン管理またはラベル付けシステムを活用します。リポジトリをホストしているサーバーで実行されているスクリプトを使用して、日付でパッケージを識別することもできます。

0
ewwhite