アプリケーション内のすべてのデフォルトフォントを簡単に識別する方法はありますか?

アプリケーション内のすべてのデフォルトフォントを簡単に識別する方法はありますか?

Debian Kwheezy (KDE を使用した Debian Wheezy のスピン) には、考えられるすべてのフォントと、拡張文字セットでさまざまな外国語をサポートするために用意された数百のフォントがバンドルされています。フォントの大部分は、基本的に英語文字内のいくつかの基本フォントの複製です。異なる発行元の基本的に同じフォントが含まれている複製もあります。Debian は小さな外部ディスクで実行されており、使用可能なスペースが不足しているため、これらを除外する必要があります。

システム フォントは、システム設定パネルから識別できます。ただし、多くのアプリケーションでは、独自のデフォルト フォントが定義されています。フォントを削除した後で、デフォルト フォントを削除したためにアプリケーションが動作しなくなるのは避けたいものです。すべてのアプリケーションを調べて、フォントが指定されている場所を見つけ、「削除しない」リストを作成するのは大変な作業です。フォント依存関係のリストを生成するコマンドのように、既存のアプリケーションが検出するすべてのフォントを識別する簡単な方法はありますか?

答え1

次のようなことができます:

find /usr/share/fonts -type f -atime +30

過去30日間にアクセスされていないフォントをすべて表示します。その後、

dpkg -S /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf

そのフォントがどの Debian パッケージに含まれているかを確認します (削除できるようにします)。

警告: ファイルシステムが完全にマウントされていることを前提としています時間(アクセス時間) サポート。ファイルにアクセスしたときにファイル アクセス時間が変更されるかどうかを確認することで、動作していることを確認できます。

% ls -l --time=atime /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
-rw-r--r-- 1 root root 54508 Oct 24 18:44 /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
% sleep 2m
% file /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf: TrueType font data
% ls -l --time=atime /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf
-rw-r--r-- 1 root root 54508 Oct 24 18:46 /usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf

(上記の例では、現在のatimeを表示し、2分間スリープし、ファイルを読み取り(file(1)を使用、読み取り専用コマンドであればどれでも可)、現在のatimeを再度確認します。変更されている場合(私たちの場合のように:18:4418:46) の場合、atime サポートが機能しています。statの代わりにを使用することもできますls -l --time=atime)

動作しない場合(例:atimeが更新されない)は、/etc/fstab「/usr」または「/」パーティション(または、フォントstrictatimeディレクトリがどこであるかを確認し、名前に他のオプションが含まれていないことを確認しatime、変更を有効にするために再起動し、未使用のフォントを再度検索する前にすべてのアプリを使用してすべてのフォントにアクセスできるようにします。

注意: atime サポートが無効になっているのには理由があります (Debian/カーネルのバージョンによって異なります)。これは、パフォーマンスが少し低下するためです (ファイルを読み取るたびに少し書き込みを行う必要があるため)。そのため、ファイルがアクセスされた時間を見つける機能よりもパフォーマンスの向上の方が重要な場合は、フォントのクリーンアップが完了したら、relatimeまたはを再度noatime追加することをお勧めします/etc/fstab

関連情報