1

Debian Kwheezy (версия Debian Wheezy с KDE), поставляется в комплекте с каждым мыслимым шрифтом и сотнями шрифтов для поддержки различных иностранных языков в их расширенных наборах символов. Большинство шрифтов по сути являются дубликатами нескольких основных шрифтов в английских символах. Существуют также дубликаты, в которые включены по существу одинаковые шрифты от разных издателей. Мне нужно отбросить их, потому что Debian работает на маленьком внешнем диске, а доступного места не хватает.

Системный шрифт можно узнать на панели системных настроек. Однако многие приложения определяют свой собственный шрифт по умолчанию. Я не хочу удалять шрифт, а затем обнаруживаю, что приложение не работает, потому что я удалил его шрифт по умолчанию. Было бы хорошо пройтись по каждому приложению, найти, где оно указывает шрифт, и создать список "не удалять". Есть ли простой способ, например, команда для создания списка зависимостей шрифтов, чтобы определить все шрифты, которые ожидают найти существующие приложения?

1 ответ1

1

Вы могли бы сделать что-то вроде:

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

который покажет все шрифты, к которым не было доступа за последние 30 дней. Вы можете тогда сделать

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

выяснить, в каком пакете Debian этот шрифт (чтобы вы могли его удалить).

ВНИМАНИЕ: предполагает , что ваша файловая система монтируется с полным Atime (время доступа) поддержки. Вы можете проверить, работает ли он, проверив, изменяется ли время доступа к файлу при обращении к файлу:

% 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), тогда работает временная поддержка. Мы могли бы использовать stat вместо ls -l --time=atime)

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .