Как обновить конфиг из шаблона?

Для примера возьмем конфиг /etc/portage/make.conf/custom. В версии 14 по умолчанию используется шаблон /var/lib/layman/calculate/profiles/templates/3.1/3_ac_install_live/1-live/sys-apps/portage/make.conf
Так же есть возможность использовать “свой” конфиг /etc/portage/make.conf/custom.clt
Я добавил /etc/portage/make.conf/custom.clt.

1. Как теперь применить его чтобы сразу увидеть изменения?
2. Как “смерджить” свой конфиг с “системным” шаблоном?(/var/lib/layman/calculate/profiles/templates/…/make.conf)?

Раньше, как я понимаю, был cl-template для этих целей (http://www.calculate-linux.org/main/ru/calculate-install). Что нужно использовать в новой версии (CL14)?

Смотря какая цель. Настройки /etc/portage/ вынесены в отдельные директории. Создав в make.conf/ файл, он не будет не переписан и ни стёрт утилитами. Поскольку требований к именам файлов настроек в портежах нет, clt-шаблон будет воспринят портежами как ещё один файл настроек.

Файл custom создаётся в качестве основы для ваших настроек один раз и если он есть, уже не переписывается. Здесь наша ошибка в том, что в нём, как и в других шаблонах присутствует строка, что для его модификации нужно создать шаблон. Обязательно исправим!

Для проверки работы шаблонов можно выполнить `cl-core-setup --pkg-name=…` с именем пакета.

Создав в make.conf/ файл, он не будет не переписан и ни стёрт 
...  и если он есть, уже не переписывается

Да, это я уже выяснил разобравшись с шаблонами.

Для проверки работы шаблонов можно выполнить `cl-core-setup --pkg-name=..` с именем пакета.

А вот это именно то, что нужно! Спасибо.

Так же стоит отметить, что перегенерация конечного файла будет происходить только при его отсутствии даже для “локального” шаблона (/etc/portage/make.conf/custom.clt).
Как я понимаю, это зависит от опции protected в “системном” шаблоне.

Наличие в заголовке опции “protected” не привяжет файл к пакету. Сделано это для того, чтобы переустановка sys-apps/portage при отключённых утилитах не повлекла удаление этого файла.

В заголовке системного шаблона есть условие “exists(/etc/portage/make.conf/custom)==”, где явным образом проверяется наличие файла. Шаблон будет выполнен только при отсутствии custom у пользователя.

Alexander Tratsevskiy wrote:

Для проверки работы шаблонов можно выполнить `cl-core-setup --pkg-name=…` с именем пакета.

Я пользую cl-setup-system -T local

Я пользую cl-setup-system -T local

local относится к локальным шаблонам директории /var/calculate/templates. Для Clt-шаблонов нужно использовать вызов “cl-setup-system -T clt”. Неплохо было бы ещё добавить “-v” для того, чтобы видеть изменения.

cl-core-setup в данном случае покажет ещё связан Clt-шаблон с пакетом или нет.

Например, для настройки /etc/samba/smb.conf, вы можете пойти двумя путями:

# Создать шаблон "/etc/samba/smb.conf.default.clt":

 # Calculate name=smb.conf link=smb.conf.default format=samba

# Создать шаблон "/etc/samba/smb.conf.clt" и содержимым:

 # Calculate merge(net-fs/samba)!= link=smb.conf.default format=samba

Суть в том, что smb.conf ebuild’ом не создаётся, поэтому в первом примере шаблон “привязывается” к файлу smb.conf.default, меняя конечное имя. В примере smb.conf.default используется как основа для шаблона smb.conf и связывается с ним при помощи параметра link.

Во втором случае мы создаём файл шаблона, который никак не связан с пакетом, поэтому добавляем параметр “merge”, явно связывая его с samba.

Проверить работу шаблона можно выполнив:

cl-core-setup --pkg-name=samba -T clt

Пример:

* Шаблон:

cat /etc/samba/smb.conf.clt
 # Calculate merge(net-fs/samba)!= link=smb.conf.default format=samba

[global]
workgroup = CALCULATE

* Настроенный файл:

cat /etc/samba/smb.conf
#------------------------------------------------------------------------------
 # Modified Calculate-core 3.2.1
 # Processed template files:
 # /etc/samba/smb.conf.clt
 # For modify this file, create /etc/samba/smb.conf.clt template.
#------------------------------------------------------------------------------
 # This is the main Samba configuration file. You should read the
 # smb.conf(5) manual page in order to understand the options listed
 # here. Samba has a huge number of configurable options (perhaps too
 # many!) most of which are not shown in this example
#
 # For a step to step guide on installing, configuring and using samba, 
 # read the Samba-HOWTO-Collection. This may be obtained from:
 #  http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
#
 # Many working examples of smb.conf files can be found in the 
 # Samba-Guide which is generated daily and can be downloaded from: 
 #  http://www.samba.org/samba/docs/Samba-Guide.pdf
#
 # Any line which starts with a ; (semi-colon) or a # (hash) 
 # is a comment and is ignored. In this example we will use a #
 # for commentry and a ; for parts of the config file that you
 # may wish to enable
#
 # NOTE: Whenever you modify this file you should run the command "testparm"
 # to check that you have not made any basic syntactic errors. 
#
#======================= Global Settings =====================================
[global]

 # workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
workgroup = CALCULATE

 # server string is the equivalent of the NT Description field
...

Денис и Александр, спасибо! То, то что нужно.

Alexander Tratsevskiy wrote:

Я пользую cl-setup-system -T local

local относится к локальным шаблонам директории /var/calculate/templates. Для Clt-шаблонов нужно использовать вызов “cl-setup-system -T clt”. Неплохо было бы ещё добавить “-v” для того, чтобы видеть изменения.

А, да у меня нет .clt, все лежит в /var/calculate/templates.