Как сделать установленные вручную шрифты доступными для всех приложений без запуска `fc-cache -f`?

351
dirlago

С dpkgновыми шрифтами получить установлен и использовать в кратчайшие сроки. Когда я добавляю шрифт вручную, мне приходится использовать fc-cache -f, что занимает много времени. Как установить шрифты вручную способом dpkg? Как dpkg делает их доступными для всех приложений без запуска fc-cache -f?

1
Как насчет того, чтобы не использовать `-f`? Там не должно быть необходимости регенерировать * все *. Daniel B 6 лет назад 2
@DanielB Почему ** все ** рекомендуют `fc-cache -f` в своем руководстве по установке шрифта? dirlago 6 лет назад 1
dpkg работает с источником, который уже был обработан. Делать это вручную нет. fixer1234 6 лет назад 0
Не совсем верно. Видимо, это работает в любом случае. Поэтому они рекомендуют `-f` * на всякий случай *. (Чтобы охватить все мыслимые случаи.) dirlago 6 лет назад 0
Зачем? Это наверняка не больно. Кроме того, все это делают, поэтому это должно быть правильно. По сути, это [Грузовой культ] (https://en.wikipedia.org/wiki/Cargo_cult_programming). Daniel B 6 лет назад 0

1 ответ на вопрос

1
bertieb

Как сделать шрифты доступными без запуска fc-cache -f

Не беги fc-cache -f!

По крайней мере, в моей системе (Arch) шрифты выбираются, как только они помещаются в каталог, известный fontconfig (и кэш автоматически перестраивается).

fc-cache -f вызывает перестройку кэша шрифтов

Со страницы man для fc-cache :

-f Force re-generation of apparently up-to-date cache files,  overriding the timestamp checking. 

Но если кэш шрифтов не нуждается в обновлении, зачем вам это делать?

Вы можете запустить fc-cacheбез аргументов вместо этого. Вики Arch имеет несколько предложений :

Чтобы установить общесистемные шрифты (доступные для всех пользователей), переместите папку в каталог / usr / share / fonts /. [...]

Затем обновите кэш шрифтов fontconfig: (обычно это не нужно, поскольку программное обеспечение, использующее библиотеку fontconfig, делает это.)

 $ fc-cache 

(акцент мой)

пример

У меня не установлен шрифт Titillium Web :

grep -i titi returns nothing

Поэтому я скачал его (разрешительная лицензия, OFL!) И скопировал файлы ttf в /usr/share/fonts/TTF. Я собирался запустить fc-cache(без -f), чтобы увидеть, нужно ли обновить кэш, но сначала я перезапустил fc-list | grep -i titi:

oh there they (the fonts) are

GIF делает паузу на некоторое время перед циклом, так как я был немного удивлен, что кэш шрифтов был обновлен

И они уже были кэшированы! Они были доступны для приложений, как и ожидалось. Нет необходимости fc-cache, и, безусловно, нет необходимости заставлять его -f.