ports
- How to remove the uneeded package leaves
Ports Collectionからアプリケーションをインストールしたり削除したりしている場合、
どこからも参照されない、 いわゆる 「リーフパッケージ」 が発生することがあります。 「リーフパッケージ」 はビルド時にのみ必要とされインストールされたビルドツールや変換ツール、 またはビッグアプリケーション削除後に残った依存ライブラリや依存ツールなどです。なんらかのアプリケーションを試用しようとしてPorts Collectionからインストールし、 不要と判断して削除した場合、 そのアプリケーションに依存してインストールされたほかのライブラリやツール、 ソフトウェアはインストールされたままになります。こうしたユーザが必要としないパッケージが 「リーフパッケージ」 です。 リーフパッケージは使われないのにそこに存在しているため、
次のような弊害があります。 - 依存関係のチェック処理などを遅くする要因となる
- アップグレードなどに失敗する要因になる可能性がある
- ディスク容量を圧迫する
リーフパッケージになっているということは、
すでにほかのアプリケーションから参照されることがなく、 同じアプリケーションをインストールしない限りは再利用される可能性が低い状態にあります。ビルドツールなどはビルド時に使われますが、 特定の用途に特化したライブラリなどは、 対象となるアプリケーションを削除したあとは使われずに残り続けることが多いように思います。 リーフパッケージは定期的にチェックしてアンインストールした方が、
システムを軽快な状態に保つことができます。Ports Collectionにはリーフパッケージの削除に特化したツールが用意されています。たとえば次のツールなどがあります。 - pkg_
cleanup (ports-mgmt/ pkg_ cleanup) - pkg_
cutleaves (ports-mgmt/ pkg_ cutleaves) - pkg_
rmleaves (ports-mgmt/ pkg_ rmleaves) - portmanager
(ports-mgmt/ portmanager)
扱いやすさと軽量さを考えると、
「pkg_ cleanup」 あたりはこの目的に適切なツールといえます。pkg_ cleanupで不要なリーフパッケージを削除すると、 新しいリーフパッケージの一覧を表示するか聞かれます。リーフパッケージを削除したことで、 そのリーフパッケージに依存していたパッケージが新しくリーフパッケージになることがあるからです。大量にリーフパッケージがある場合、 10数回といった回数、 この作業を繰り返す必要があることもあります。 依存関係のチェックに長い時間がかかると感じるようになってきたのであれば、
pkg_ cleanupなどのツールを使ってリーフパッケージの削除作業を検討してみると良いかもしれません。