eclean(1)

名前
eclean - Gentoo 用 distfiles とバイナリパッケージの掃除ツール

書式

eclean [global-options] ... <actions> [action-options] ...

eclean-dist [global-options, distfiles-options] ...

eclean-pkg [global-options, packages-options] ...

eclean(-dist,-pkg) [--help, --version]

説明
eclean は利用されることのない distfiles やバイナリパッケージを削除するため の小粒なツールである。必要かどうかわからないファイルにより、DISTDIR や PKGDIR ディ レクトリが際限なく肥大化するのを防ぐために定期的に使用する。

標準で eclean は Portage ツリーに ebuild が存在する distfiles やバイナリパッケー ジには全く手を付けない。このモードは、パッケージをダウングレードする際にパッケー ジのソースをダウンロードし直す必要がなく、また、誤って unmerge してしまったパッ ケージの再インストールの際にコンパイルし直す必要がないため、とても安全である。確 かに、これでもまだ DISTDIR や PKGDIR は大きいままである (しかし際限なく増大する ことは防げる)。また、このモードでは Portage ツリー全体へのアクセスが必要になるた め、'distfiles' に関してはかなり遅くなる。

--destructive オプションを使用すると、eclean は現在インストールされているパッ ケージのファイルしか保護しない (バージョンの完全一致による)。するとさらなる容量 の節約が可能だが依然として、レビジョン更新に使用されたファイルや、破損したパッケー ジの再インストール用バイナリなどは保存される。しかし、ダウングレードや、unmerge したパッケージの再インストールなど、あまり行われない操作のためにファイルを保持す ることはなくなる。また、これが最も速く実行されるモードであり (distfiles における 大きな違い)、yacleaner (バージョン 0.3 においては) などその他の削除用スクリプト でよく用いられる。

その中間として、--destructive を使用する時に --package-names オプションを追 加することで、インストール済みパッケージの全てのバージョンのファイルが保護される ようになる。すると、コンパイルし直すことなくダウングレードしたり、障害発生時にダ ウンロードし直したりせずに済むだろうが、パッケージのアンインストールからは守られ なくなる。

これらに加え、特殊なファイル保護規則を宣言するためのオプションがある。

o   --time-limit は指定された期間よりも新しいファイルを保護する。

o   --size-limit (distfiles のみ) は指定されたサイズよりも大きいファイルを保護する。

o   --fetch-restricted (distfiles のみ) は手動でダウンロードしたファイルを保護する。 しかし、とても遅い (これも同じく、Portage ツリー全体のデータを読み込む)...

o   最後に、除外ファイルに保護するカテゴリや、パッケージの名前を記載することができる (以下の EXCLUSION FILES を参照)。

引数

  グローバルオプション

-C, --nocolor				カラー表示をしない

-d, --destructive			再インストール用に最小限しか保持しない

-e, --exclude-file=<path>	除外ファイルへのパス
    <path> は使用したい除外ファイルへの絶対パス。 このオプションが使用されない場合のデフォルトパスは /etc/eclean/{packages,distfiles}.exclude である (存在すれば)。もしその場所にファ イルが存在するものの一時的にそれを無視したい場合には、/dev/null を使用していただ きたい。

-i, --interactive          削除する前に確認する

-n, --package-names       全てのバージョンを保護する (--destructive のみ)

-p, --pretend              何が掃除されるかを表示するだけ

-q, --quiet                エラー以外の出力をできるだけ抑制する

-t, --time-limit=<time>    <time> 以後に更新されたファイルを削除しない
    <time> は期間: "1y" は "1年"、"2w" は "2週間"、など。
    単位: y (年)、m (月)、w (週)、d (日) そして h (時間)。

-h, --help                 ヘルプを表示する

-V, --version              バージョン情報を表示する

  アクション

distfiles
    /usr/portage/distfiles を掃除する (それか /etc/make.conf にある DISTDIR)。 このアクションはほとんどの Gentoo ユーザーにとって有用であるだろう、私たちはだれ しもがいつか巨大な DISTDIR を持つことになるのだから...
    eclean-dist は eclean を "distfiles" アクションで実行する、コマンドライン 入力をかんたんにするためのショートカットである。

packages
    /usr/portage/packages を掃除する (それか /etc/make.conf にある PKGDIR)。 FEATURES フラグに "buildpkg" や "buildsyspkg" を使用する人にとくに有用である。
    eclean-pkg は eclean を "packages" アクションで実行する、コマンドライン入 力をかんたんにするためのショートカットである。

  'distfiles' アクションのオプション

-f, --fetch-restricted		手動でダウンロードしたファイルを保護する (--destructive のみ)

-s, --size-limit=<size>	<size> より大きいものは削除しない
    <size> はサイズ指定: "10M" は "10メガバイト"、"200K" は "200キロバイト"、など。
    単位: G, M, K そして B.

  'packages' アクションのオプション

オプションなし。

除外ファイル
除外ファイルは特に保護したいパッケージの名前や、カテゴリーを列挙したものである。 これは例えばシステム関連のバイナリパッケージをより多く保護したい場合などに便利で ある。文法は以下の通り:

o   空行や、"#" (コメント) で始まる行は無視される。

o   1行には1項目のみ。

o   "sys-apps" のようなカテゴリの名前が指定されている場合、そのカテゴリの全てのパッ ケージが保護される。"sys-apps/*" もまた許容されるが、これはどのような場合でもワ イルドカードがサポートされていることを意味するものではない。

o   "app-shells/bash" のようなパッケージの名前が指定されている場合、そのパッケージ が保護される。">=app-shells/bash-3" のようなバージョンアトムはサポートされてい ない。また、完全なパッケージの名前 (カテゴリを含む) である必要がある。

o   "!sys-apps/portage" のように先頭にエクスクラメーション・マークがある場合、その パッケージは保護対象から除外される。これはそのカテゴリが保護されている場合にのみ 有用である。

o   distfiles 保護の場合、保護したいファイル名を指定する。これは OpenOffice.org i18n ファイル (例えば "helpcontent_33_unix.tgz") のような、ebuild に記載されていない ファイルが存在する場合に便利である。

アクションが "packages" (または "distfiles") の時、/etc/eclean/packages.exclude (または distfiles.exclude) が存在すればそれが使用される。これは --exclude-file オプションで置き換えることができる。

例

distfiles のみを掃除し、各ファイルごとに確認する:
# eclean -i distfiles

カラー表示をせずに、削除可能なバイナリパッケージを確認する:
# eclean -Cp packages

未インストールパッケージのバイナリパッケージを削除し、インストール済みのものは保持する:
# eclean-pkg -d -n

インストール済みパッケージ以外 (バージョンの完全一致) の distfiles のうち、1ヶ月未満、 50MB 以上、自動ダウンロード禁止のもの以外を削除する:
# eclean-dist -d -t1m -s50M -f

crontab より、毎週日曜午前1時に、出力を抑制して安全にパッケージを削除し、1週間上 経った distfiles を破壊的に削除する:
0 1 * * sun eclean -C -q packages ; eclean -C -q -d -t1w distfiles

関連項目

eclean 誕生のきっかけを与えた Gentoo フォーラムのスレッド
    http://forums.gentoo.org/viewtopic.php?t=3011

eclean を gentoolkit に取り込むよう要求するバグ報告:
    http://bugs.gentoo.org/show_bug.cgi?id=33877

Yacleaner, その他の同様なツールのひとつ:
    http://blog.tacvbo.net/data/files/yacleaner/

著者
Thomas de Grenier de Latour (tgl) <degrenier@easyconnect.fr>