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=atime
too)
Если это не работает (например, atime не обновляется), то вам следует проверить /etc/fstab
раздел "/usr" или "/" (или любой другой раздел, на котором вы находитесь)./usr/share/шрифтыкаталог) и убедитесь, что в его имени strictatime
нет других опций atime
, а затем перезагрузите компьютер, чтобы изменения вступили в силу, и используйте все свои приложения, чтобы получить доступ ко всем шрифтам, прежде чем снова пытаться найти неиспользуемые шрифты.
Обратите внимание, что есть причина, по которой (в зависимости от версии Debian/ядра) поддержка atime может быть отключена — это немного снижает производительность (приходится выполнять небольшую запись каждый раз, когда вы читаете файл); поэтому, если для вас важнее повышение производительности, чем возможность определить, когда был осуществлен доступ к файлам, вы можете снова включить или relatime
после того, как закончите очистку шрифтов.noatime
/etc/fstab