После перехода на Calculate Utilities 3 я стал замечать, что он время от времени затирает конфиги, которые я правлю на те, которые по умолчанию. В частности, он иногда затирает /etc/sudoers, из-за чего у меня пропадает возможность пользоваться sudo из-под локального пользователя, приходится перепрописывать. Вчера на моем ноутбуке опять появился файл /etc/init.d/net.wlan0, из-за чего он опять стал подключаться к вай-фаю самостоятельно через DHCP, минуя Wicd и все его настройки. Я его удалял некоторое время назад как раз из-за таких фокусов, а он опять самостоятельно появился.
В общем, мне это не нравится. Можно ли сделать так, чтобы он перед правкой конфигов хотя бы спрашивал меня об этом? До Calculate 12 довольно часто подавал голос dispatch-conf, и это была отличная вещь, надо сказать. Всегда можно было отказаться от правки того или иного конфига. В Calculate 12 его отключили что ли?
Это временно. Из двух зол мы выбираем меньшее, настраивая конфиги в уже установленной системе. В большинстве случаев проблем не доставляет, т.к. шаблоны не заменяют файлы, а только правят настройки файлов. С sudoers сложнее, там формат сложный, поэтому файл переписывается.
Решить проблему можно написав свой шаблон. Самый простой вариант - просто сделать копию в файл /etc/sudoers.clt В этом случае настройки будут закреплены за пакетом, даже если Вы захотите установить новую или другую версию системы.
По поводу бэкапа, его пока нет. Сделаем в утилитах 3.1.
А как быть с файлом /etc/init.d/net.wlan0, который иногда появляется и мне приходится его удалять, чтобы все настройки для подключения к вай-фаю были в соответствии с настройками Wicd?
Я правильно понял, dispatch-conf появится в 3.1?
Кстати, у меня вопрос как к Петру, так и к Александру:
Есть такая директория как /etc/sudoers.d/
Если я правильно понимаю логику вещей - в нее помещается файлы аналогичного с /etc/sudoers
формата, и при этом они абсолютно не будут конфликтовать друг с другом.
Почему бы не использовать её, оставляя основной конфиг в оригинальном состоянии, либо изменяя/обнуляя его по желанию?
Прекрасная идея Михаил.
С wlan0 сложнее, ссылка создается для корректной настройки сетевого интерфейса. Опять же можно сделать шаблон, который удалит этот файл при обновлении.
2 Александр
Кстати, к вопросу о корректной настройке сетевых интерфейсов.
С третьими утилитами появилась возможность создавать собственные переменные, почему бы не сделать набор переменных по типу:
os_rc_net_config_eth0
os_rc_net_bridge_br0
os_rc_net_rc_need_br0
os_rc_net_brctl_br0
os_rc_net_config_ppp0
os_rc_net_pppd_ppp0
os_rc_net_chat_ppp0
И шаблон с exec=/bin/bash
фильтрующий шаблоны по маске os_rc_net_*
и
# переносящий их один в один в /etc/conf.d/net
# при наличии os_rc_net_config_<interface_name>
создающий
/etc/init.d/net.<interface_name>
Кстати, кроме возможности вынести настройки ppp и bridge-ей в шаблоны, это даст возможность для разных интерфейсов использовать для настройки как openrc, так и networkmanager, так и wicd (а это иногда бывает полезно).
Для NetworkManager примерный путь таков - другим аналогичным шаблоном-скриптом :
# Вынести настройки интерфейсов для nm в /etc/NetworkManager/system-connections/
# отключить настройку openrc-шных устройств (тех, для которых есть os_rc_net_config_<interface_name>
) через NetworkManager
man NetworkManager.conf
найти unmanaged-devices=
# добавить именованные настройки новых подключений, в т.ч. и на одном и том же интерфейсе(привет автору этого вопроса) чем нибудь вроде cnetworkmanager-а (если умеет)
Для wicd путь наверно аналогичный, но расписывать не буду, не помню я тонкостей его настройки, уж слишком давно я его последний раз тыкал.
Ну это наверное должна быть отдельная тема.
PS
для openrc похоже придется предусмотреть модульность настроек, как минимум оставить возможность добавить модуль настройки wpa_supplicant, hostapd, или еще чего угодно.
Alexander Tratsevskiy wrote:
Ну это наверное должна быть отдельная тема.
Хорошо, где лучше тему завести?
форум? блог? задачи?
задачи
Alexander Tratsevskiy wrote:
С wlan0 сложнее, ссылка создается для корректной настройки сетевого интерфейса. Опять же можно сделать шаблон, который удалит этот файл при обновлении.
Подскажите пожалуйста, как будет выглядеть шаблон в этом случае?
Подскажите пожалуйста, как будет выглядеть шаблон в этом случае?
Создайте файл /var/calculate/templates/net.wimax0
со следующим содержимым:
# Calculate cl_name==calculate-install&&belong(openrc)!=&&pkg(sys-apps/openrc)!=
path=/etc/init.d append=remove
Проверить работу можно выполнив:
cl-core-setup --pkg-name openrc
Описание шаблонов можно почитать здесь.
Будут вопросы - пишите.
Спасибо, получилось!
Но все же, как мне кажется, иной раз проще вписать лишнюю строчку в конфиг, чем создавать шаблон, который иногда бывает не очень интуитивно понятный (хотя, это может на первый взгляд). Надеюсь, вы в утилитах 3.1 прикрутите возможность выбора с помощью dispatch-conf, затирать ли имеющийся конфиг или нет.
Но все же, как мне кажется, иной раз проще вписать лишнюю строчку в конфиг, чем создавать шаблон
Если формат конфигурационного файла поддерживается шаблоном, он перепишет только те настройки, которые настраиваются утилитами. Но при обновлении пакета, в случае если Вы что-либо меняли, создастся новый конфиг и Вам все равно придется его как-то его объединять либо удалять. В случае с шаблонами, Вы можете зафиксировать свои настройки в файле шаблона. Он будет формироваться путём объединения дефолтного файла, шаблона утилит и вашего шаблона. Сформированный таким образом конфиг портежи будут считать оригинальным, следовательно не будет создаваться его копия (не смотря на внесенные вами изменения в шаблоне), следовательно не будет необходимости выполнять dispatch-conf.
который иногда бывает не очень интуитивно понятный
Да, шаблоны не всегда понятны, но очень удобны и функциональны. Например файл шаблона можно для удобства назвать “remove_wireless”, дописав в заголовке настоящее имя строчкой ‘name=net.wimax0’. Можно поместить его в директорию, указав в её свойствах, чтобы она не создавалась. Можно использовать внутренние переменные утилит в условных выражениях и для подстановки значений. В 3.1 переменные можно будет не только отображать, но и менять их значения.
Alexander Tratsevskiy wrote:
Подскажите пожалуйста, как будет выглядеть шаблон в этом случае?
Создайте файл
/var/calculate/templates/net.wimax0
со следующим содержимым:[…]
Проверить работу можно выполнив:
[…]
Ура! Первая подвижка к туториалу по шаблонам на конкретном примере!
# Теперь известно, что шаблоны располагаются в /var/calculate/templates/
# Вопрос: почему он должен называться именно net.wimax0
, а не как-то иначе (в правилах именования не совсем понятно - та длинная строчка в примере, это имя файла)?
Пожалуйста, при возможности включите в документацию раздел типа “Практическое применение шаблонов для начинающих” вот хотя бы на примере правки дефолтных шаблонов “под себя”.
FAQ, HOWTO и EXAMPLES лучше писать по живым примерам. Пока нет wiki, можно копить примеры на форуме или в блоге.
Условные выражения в именах шаблонов наследовались с первой версии утилиты Calculate и сейчас уже нигде не используются. Вместо этого есть опция ‘name=…’ в заголовке шаблона, используя которую утилиты переименовывают шаблон. Если name не указан, используется имя шаблона. В примере я не стал использовать какое-то другое имя для шаблона, выбрав net.wimax0.
Примеры использования шаблонов можно посмотреть в блоге.
Спасибо!