FreeBSD の開発サイクルにおいて、
ファイルやシステムの一部が使われなくなることがあります。
それらの機能が別の場所で実装されたり、
ライブラリのバージョン番号が変わったり、
システムから完全に削除されることがあるためです。
システムのアップデート時に削除が必要になるのは、
古いファイル、ライブラリそしてディレクトリです。
これらのファイルを削除することで、
記憶媒体やバックアップ媒体において不必要な容量を占めている古いファイルが、
システム上に散乱することがなくなります。
また、古いライブラリのセキュリティや安定性に問題があると、
ライブラリを新しくしてシステムを安定な状態にし、
古いライブラリによりシステムがクラッシュすることを防がなければなりません。
使われなくなったファイル、ディレクトリ、ライブラリは
/usr/src/ObsoleteFiles.inc
にまとめられています。以下の手順により、
アップグレードの過程でこれらのファイルを削除できます。
「システムを更新する正式な方法」
で説明した方法でシステムを構築してください。
make
と、その後の installworldmergemaster が無事に終わったら、
以下の方法で使われなくなったファイルやライブラリを確認してください。
# cd /usr/src
# make check-old見つかった古いファイルは、以下のコマンドで削除できます。
# make delete-oldその他のターゲットについては /usr/src/Makefile
をご覧ください。
使われなくなったファイルを削除する際、ファイルごとに確認が求められます。
確認を省略し、自動的にファイルを削除するには、
以下のように BATCH_DELETE_OLD_FILES
を設定してください。
# make -DBATCH_DELETE_OLD_FILES delete-oldyes
をコマンドへパイプでつなげても省略できます。
# yes|make delete-old使われなくなったファイルを削除すると、
削除したファイルに依存していたアプリケーションは壊れてしまいます。
特に、古いライブラリを削除する場合に起こり得ます。
通常、make
を実行する前に、
これらの古いライブラリを使っているプログラム、ports、
ライブラリを再構築する必要があります。delete-old-libs
共有ライブラリをチェックするユーティリティとして、
Ports Collection の sysutils/libchk や sysutils/bsdadminscripts
を利用できます。
使われなくなった共有ライブラリは、 新しいライブラリと競合し、以下のようなメッセージを表示することがあります。
この問題を解決するには、 まずライブラリがどの 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 が再構築され、
古いライブラリがどこにも使われていないことを確認したら、
以下のコマンドで古いライブラリを削除してください。
# make delete-old-libs本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。