FreeBSD ハンドブック
前のページ | 第 18章FreeBSD のアップデートとアップグレード | 次のページ

# 18.8. 使われなくなったファイル、ディレクトリ、ライブラリの削除

ベースとなったノートの提供: Anton Shterenlikht.

FreeBSD の開発サイクルにおいて、 ファイルやシステムの一部が使われなくなることがあります。 それらの機能が別の場所で実装されたり、 ライブラリのバージョン番号が変わったり、 システムから完全に削除されることがあるためです。 システムのアップデート時に削除が必要になるのは、 古いファイル、ライブラリそしてディレクトリです。 これらのファイルを削除すると、記憶媒体 (およびバックアップ媒体) において不必要な容量を占めている古いファイルが、 システム上に散乱することがなくなります。 また、古いライブラリのセキュリティや安定性に問題があると、 ライブラリを新しくしてシステムを安定な状態にし、 古いライブラリの実装からシステムがクラッシュすることを防がなければなりません。 使われなくなったファイル、ディレクトリ、ライブラリは `/usr/src/ObsoleteFiles.inc` にまとめられています。この節では、 アップグレードの過程でこれらのファイルを削除する方法について説明します。

システムは、項18.7.1 で説明した方法で構築されていると仮定します。 `make `installworld`` と、 その後の `mergemaster` コマンドが無事に終わったら、 以下の方法で使われなくなったファイルやライブラリを確認してください。

    # cd /usr/src
    # make check-old

見つかった古いファイルは、以下のコマンドで削除できます。

    # make delete-old

> ティップ: その他のターゲットについては `/usr/src/Makefile` をご覧ください。

使われなくなったファイルを削除する際、ファイルごとに確認が求められます。 以下のように make の `BATCH_DELETE_OLD_FILES` 環境変数を設定すると、 確認が省略され、自動的にファイルが削除されます。

    # make -DBATCH_DELETE_OLD_FILES delete-old

`yes` をコマンドへパイプでつなげても省略できます。

    # yes|make delete-old

> Warning使われなくなったファイルを削除すると、 削除したファイルに依存していたアプリケーションは壊れてしまいます。 特に、古いライブラリを削除する場合に起こり得ます。 通常、`make `delete-old-libs`` を実行する前に、 これらの古いライブラリを使っているプログラム、ports、 ライブラリを再構築する必要があります。

共有ライブラリをチェックするユーティリティとして、 Ports Collection の `sysutils/libchk` や `sysutils/bsdadminscripts` を利用できます。

使われなくなった共有ライブラリは、 新しいライブラリと競合し、以下のようなメッセージを表示することがあります。

    /usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5
    /usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5

この問題を解決するには、 まずライブラリがどの port によってインストールされたかを調べて下さい。

    # pkg_info -W  /usr/local/lib/libtiff.so
    /usr/local/lib/libtiff.so was installed by package tiff-3.9.4
    # pkg_info -W /usr/local/lib/libXext.so
    /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1

見つかった port をアンインストールし、 再構築、再インストールしてください。 この過程は `ports-mgmt/portmaster` や `ports-mgmt/portupgrade` ユーティリティで自動化できます。 すべての ports が再構築され、 古いライブラリがどこにも使われていないことを確認したら、 以下のコマンドで古いライブラリを削除してください。

    # make delete-old-libs

前のページ | ホーム | 次のページ
“world” の再構築 | 上に戻る | 複数のマシンで追いかける

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。