Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Для ГУИ-шных программ с длинными именами вместо алиасов обычно можно использовать симлинки, уж они наверняка будут восприниматься. Например, ln -s /usr/bin/thunderbird tb |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
cac2sroot (и только root) имеет право выполнить команду chattr +i , которая устанавливает для файла в ext2/3/4 атрибут “immutable”, что блокирует его изменение и удаление всеми пользователями, включая root. Также root имеет право выполнить команду chattr -i , которая снимет этот атрибут. [root@first ~]# echo 1 > test [root@first ~]# chattr +i test [root@first ~]# rm test rm: невозможно удалить «test»: Операция не позволяется [root@first ~]# chattr -i test [root@first ~]# rm test [root@first ~]# Но ругань в консоли стояла многоэтажная :) |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Ошибиться было трудно. Я создал два файлика, 00-bold.conf и 99-normal.conf. Как можно догадаться из названия, первый делал все шрифты жирными, второй – нормальными. В результате с одним первым шрифт во вновь запускаемой программе становился жирным, с обоими – обычным. То есть, 99 применяется после 00. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
/etc/fonts/conf.d/README я читал, там написано почти то же самое, только "in numeric order". Так что на всякий случай пришлось проверить :) |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Из /etc/fonts.conf :<include ignore_missing="yes">conf.d</include> <include ignore_missing=“no”>Да нет, тут вроде нигде не неписано “in reversed order”. Проверил экспериментально – применяется в нормальном порядке, от 0 к 9. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
mechanicalТак я и не переписывал ВСЕ конфиги :) Просто я не хочу, чтобы пакет снова включал те конфиги, которые я явно выключил. У fontconfig есть общий файл настроек /etc/fonts/fonts.conf, папка с факультативными настройками /etc/fonts/conf.avail/ и папка симлинками для локальных настроек /etc/fonts/conf.d/ . conf.d is the conventional name for a directory of additional configuration files managed by external applications or the local administrator.http://www.freedesktop.org/software/fontconfig/fontconfig-user.html#AEN226 Я бы стерпел, если бы пакет обновлял fonts.conf и conf.avail . Но он лезет в локальные настройки! Если бы разработчики считали, что эти настройки должны обновляться автоматически, папки с симлинками НЕ БЫЛО БЫ, потому что ЭТИ симлинки БЕССМЫСЛЕННЫ, если их нельзя менять! Раз она есть – значит разработчики предназначили её для настройки, а каждый раз приспосабливаться к причудам мэйнтейнеров, которые не согласны с разработчиками, либо считают себя “external applications or the local administrator” в МОЕЙ системе, я не собираюсь :) создание своего PKGBUILD и ручное его обновлениеНу вот, я так и сделал. тем более, что обновляется он раз в пятилеткуИ это было одним из решающих аргументов. Лучше раз в год обновить самому пакет, чем через год долго искать причину незаметно возникшего бардака со шрифтами. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
vadikЭто с ~/.fonts.conf ? Пробовал когда-то делать ему chmod 444, chown root:root, но права пользователя позволяли КДЕ удалять его и создавать заново, что он и делал. Вот chattr +i не пробовал, только что посмотрел, что это такое. Вроде работает, спасибо! :) Надо будет взять этот метод на вооружение. Против пакетов, правда, не поможет, они под рутом, хотя… если вынести на ФС только для чтения… Нет, тогда пакет выдаст ошибку, а это ещё хуже. А вот против лихих ГУИ или шаловливых юзеров – сработает. Век живи… mechanical, я вас понял с первого раза, спасибо и вам за участие! Вы всё правильно пишете, все настройки можно переопределить в конце, но для этого надо знать, что там в начале, и предусматривать в своём конфиге специальные секции только для отмены вышестоящих. А если там добавят ещё какие-то новшества, то учитывать ещё и их… Уж лучше всё же “с чистого листа”. А вот с “конфиги из ~/.fonts.conf всё равно применяются последними” ошибочка вышла. Как я уже писал выше, ~/.fonts.conf работает не само по себе, а только потому, что в /etc/fonts/conf.d/50-user.conf -> ../conf.avail/50-user.conf написано: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <!-- Load per-user customization file --> <include ignore_missing="yes">~/.fonts.conf.d</include> <include ignore_missing="yes">~/.fonts.conf</include> </fontconfig> |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
КДЕ переписывал, пока я не стал удалять 50-user.conf Xfce сейчас пока не переписывает. Другие не проверял, но если у них есть в настройки шрифтов, их сглаживания и т.д., то могут очень даже, а если сейчас не пытаются, но потом что-то в них сломают и опять начнётся. Но не о том речь. У меня СВОИ конфиги, где подробно расписано, как какие шрифты будут выглядеть при каком размере. И я так или иначе делаю их недоступными для изменений любыми роботами, будь то пакетные скрипты или непрошенные ГУИ-“помошники”. Папка conf.d/ содержит симлинки специально для того, чтобы их можно было оттуда удалять или добавлять туда. Но авторы пакета почему-то считают своим долгом конфигурировать его сами. Неправильно изменять файлы пакета, но делать пакеты с “зашитыми” конфигами тоже неправильно. Поэтому, если я не могу запретить этому неправильному пакету выполнять его неправильные скрипты, я не буду неправильно менять его файлы, гораздо правильнее выкинуть весь пакет и сделать свой. :) У меня уже набралось почти два десятка самосборных пакетов, но там либо меня не устраивала версия, либо требовался патч, либо просто не было в репозиториях. Теперь просто одним больше, но это первый пакет, который пришлось заменить исключительно из-за конфигов. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Спасибо, я в курсе. Но увы, не подходит. Пользовательские конфиги очень любят переписывать всякие ушлые *DE, поэтому именно их приходится нейтрализовывать в первую очередь. Допустим, я для этого удаляю симлинк 50-user.conf из conf.d/ . А при обновлении пакета его скрипт заботливо все “недостающие” ссылочки восстановит: configs=('20-fix-globaladvance.conf' '20-unhint-small-vera.conf' '29-replace-bitmap-fonts.conf' '30-metric-aliases.conf' '30-urw-aliases.conf' '40-nonlatin.conf' '45-latin.conf' '49-sansserif.conf' '50-user.conf' '51-local.conf' '60-latin.conf' '65-fonts-persian.conf' '65-nonlatin.conf' '69-unifont.conf' '80-delicious.conf' '90-synthetic.conf') post_install() { echo -n "updating font cache... " /sbin/ldconfig -r . pushd /etc/fonts/conf.d > /dev/null for config in "${configs[@]}"; do ln -sf ../conf.avail/${config} . done popd > /dev/null /usr/bin/fc-cache -f echo "done." } Так что если действовать по предложенным правилам, то своих конфигов у меня не будет. А они есть, и мне совсем неинтересно, когда их ломают. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Столкнулся с неожиданной проблемой. Требуется: свои файлы настроек для fontconfig, то есть полностью заменить /etc/fonts/* Проблема: пакет fontconfig при обновлении пытается заменять файлы конфигурации и добавлять новые, что неприемлемо. Попытка решения: NoExtract = etc/fonts/* NoUpgrade = etc/fonts/* Полумеры: замена пакета fontconfig на самосборный fontconfig-noconf, без конфигов. В PKGBUILD: conflicts=('fontconfig') provides=('fontconfig=2.8.0') Может быть, всё же существует более правильный способ запретить определённому пакету прикасаться к конфигам? |