Как легко определить все шрифты по умолчанию в приложениях?

Как легко определить все шрифты по умолчанию в приложениях?

Debian Kwheezy (вариация Debian Wheezy с KDE) поставляется в комплекте со всеми мыслимыми шрифтами и сотнями шрифтов, которые поддерживают различные иностранные языки в их расширенных наборах символов. Большинство шрифтов по сути являются дубликатами нескольких базовых шрифтов в английских символах. Также есть дубликаты, в которых по сути включены те же шрифты от разных издателей. Мне нужно отсеять их, потому что 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:44к18:46) тогда поддержка atime работает. Мы могли бы использовать statвместо ls -l --time=atimetoo)

Если это не работает (например, atime не обновляется), то вам следует проверить /etc/fstabраздел "/usr" или "/" (или любой другой раздел, на котором вы находитесь)./usr/share/шрифтыкаталог) и убедитесь, что в его имени strictatimeнет других опций atime, а затем перезагрузите компьютер, чтобы изменения вступили в силу, и используйте все свои приложения, чтобы получить доступ ко всем шрифтам, прежде чем снова пытаться найти неиспользуемые шрифты.

Обратите внимание, что есть причина, по которой (в зависимости от версии Debian/ядра) поддержка atime может быть отключена — это немного снижает производительность (приходится выполнять небольшую запись каждый раз, когда вы читаете файл); поэтому, если для вас важнее повышение производительности, чем возможность определить, когда был осуществлен доступ к файлам, вы можете снова включить или relatimeпосле того, как закончите очистку шрифтов.noatime/etc/fstab

Связанный контент