Linux debian файлы конфигурации

Linux debian файлы конфигурации

Roughly 20% of the packages in Debian and Ubuntu ship default configuration files. If these are simply replaced, an upstream update later that modifies the same configuration file will throw dpkg into an interactive conflict resolution system. This is best avoided to make updates non-interactive. To avoid dpkg handling, the upstream package is diverted to a non-active file, and restored on removal of the config package. Placing this diversion and replacement package in its own config package allows the package to be installed by debian-installer before first boot.

The replacement file is best provided as a regular package file (not a conffile) somewhere other than the original location, and symlinked from /etc. This avoids making the replacement file also a conffile. There are complex interaction cases where a package may be removed but its configuration files remain on the system. If the replacements are also configuration files, there are twice as many cases of package installation states to deal with, and no preinst or postrm scripts to execute any logic to handle the additional cases. conffiles are listed in /var/lib/dpkg/info/*.conffiles for each package.

The recommended method to assemble -config packages is to divert and symlink in the postinst, and remove symlinks and diversions in the prerm script. The symlinks are only created if the path is either not present or is already a symlink, and only removed if the path is a symlink. One suggested location is /etc/site/. This requires a purge of the conffiles in the package build, and will generate a linitian error.

The config-package-dev package provides CDBS rules files that help automate much of the work of creating Debian configuration packages using the divert-and-symlink technique with careful error checking and support for apply simple modifications to a Debian upstream configuration file in a way that is easy to maintain over time. It is available in Debian lenny or later. You can read the config-package-dev documentation at http://debathena.mit.edu/config-package-dev for details on how to use it.

Another option is to replace both the file and the checksum so dpkg is unaware of a change, though this would result in new upstream configuration files replacing the locally customized one.

#!/bin/sh set -e PKG=company-service-config if [ "$1" = configure ] ; then for f in auto.master gssapi_mech.conf do dpkg-divert --add --package $ --rename \ --divert /etc/$f.distrib /etc/$f [ \! -e /etc/$f -o -L /etc/$f ] && ln -sf /etc/site/$f /etc/$f done fi #DEBHELPER# exit 0
#!/bin/sh set -e PKG=company-service-config if [ "$1" = remove ] ; then for f in gssapi_mech.conf auto.master do [ -L /etc/$f ] && rm /etc/$f dpkg-divert --remove --package $ --rename \ --divert /etc/$f.distrib /etc/$f done fi #DEBHELPER# exit 0

To prevent files in /etc/site in the -config package from becoming conffiles themselves, in the -config debian/rules file, remove or purge the automatically generated DEBIAN/conffiles file after dh_installdeb runs.

binary-arch: build install . dh_installdeb rm debian/company-service-config/DEBIAN/conffiles .

debconf-generated configuration files

Roughly 5% of Debian packages use the debconf database and custom scripts using that data to generate configuration files. These scripts are located in /var/lib/dpkg/info/*.config. While there aren’t a large number of these packages, they tend to be the most critical and important packages, and each one is a custom script that must be understood before you take over control of its configuration file. If dlocate /etc/filename doesn’t locate a package, there’s a good chance the configuration file is a debconf-generated file.

Читайте также:  Linux вывод в цвете

In the ideal case, there are values you can put in the debconf system that will generate the correct file. These can be done using debconf-set-selections and dpkg-reconfigure in the -config postinst script or in the installer preseed. Many .config scripts are rudimentary and are incapable of generating the required configuration file.

  1. Presence or absence of a comment or directive in the configuration file itself (eg. ##DEBCONF##)
  2. A debconf variable (eg. package/override)
  3. Test whether configuration file is really a symlink now

Diverting the /var/lib/dpkg/info/package.config script in advance of package installation doesn’t work.

ucf

Debian/etch has 113 packages (about 1% of the source archive) using ucf for configuration file handling, up from just autofs in sarge and dapper. ucf attempts to provide conffile behavior for scripts that are autogenerated. It is not yet in wide use. A real file exists somewhere else on the system, and on first install this is copied to the /etc pathname. On upgrades, the checksum of the /etc configuration file is compared with the checksum of the original, and is upgraded if no end-user changes were made. Otherwise the /etc configuration file is left unchanged.

The ucf system should be turned off for files that are provided by a -config package, and turned back on if the -config package is removed. The -config package would need to have encoded inside it the same ucf command that took over management in the first place.

ucf /usr/share/autofs/conffiles/auto.master /etc/auto.master

This doesn’t work, as autofs re-ucf’s its config files and then asks whether to overwrite. If you answer yes, ucf will follow your symlink back to the /etc/site config file and overwrite it.

Solution: divert the usr/share/autofs/conffiles/auto.master file as well, either leaving it empty or making it a symlink to /etc/site as well. Doing both seems to be sufficient to preserve the local changes.

cme and configuration upgrade

lcdproc configuration is managed by cme to setup a basic working configuration and to upgrade the configuration during package upgrade without requiring user assistance. See PackageConfigUpgrade for more details.

fully custom

There are also packages with scripts that fully automate the generation and long term maintenance of their configuration files. Each one of these is a special case, without even debconf’s generalized input model.

Читайте также:  Topaz gigapixel ai linux

bind mount

Some configuration files may need to be taken over at specific stages of bootup, but left unmodified until then. If there is no good mechanism otherwise to disable a package from rewriting a configuration file, or if it has to be returned to unmodified state before the next boot, a read-only bind mount in a bootup script may be the only way.

Источник

Полное руководство по конфигурационным файлам Linux. Часть 1

Конфигурационные файлы Linux одновременно и упрощают, и усложняют управление ОС. Параметры конфигурации легко менять, а также переносить на другие системы, но их документирование часто бывает утомительным. Мы собрали понятные объяснения и инструкции по редактированию конфигурационных файлов. Разумеется, в рамках одной статьи невозможно охватить всё, поэтому сосредоточимся на самых распространённых файлах для нескольких дистрибутивов Linux.

Немного вводных

Каждый дистрибутив Linux может использовать разные приложения и сервисы для выполнения одной и той же функции. Например, Red Hat и Ubuntu используют разные приложения для сетевых служб. Когда возможно и уместно, мы отмечаем это в статье. Но если вы встретите конфигурационный файл, о котором здесь не упоминалось, не бойтесь — он просто называется как-то по-другому для используемого вами дистрибутива.

В этом случае вам, возможно, придётся обратиться к документации дистрибутива, который настраиваете. Однако общая идея и процесс близки к тому, о чём говорится далее.

И прежде чем продолжить, упомянем кое-что важное. В примерах мы использовали редактор Nano. Вы можете использовать любой текстовый редактор командной строки, но перед редактированием конфигурационного файла мы настоятельно рекомендуем сначала создать его копию. При копировании добавьте расширение .bak в конец файла, чтобы позже вы могли идентифицировать, что это файл резервной копии.

cp originalFile.conf orginalFile.conf.bak

Существует большая вероятность, что вы в конечном счёте совершите ошибку при редактировании. Поэтому резервные файлы важны. Итак, мы вас предупредили. А теперь погрузимся в удивительный мир конфигурационных файлов Linux.

Что такое конфигурационные файлы

Конфигурационные файлы — это локальные файлы, которые управляют работой программы, утилиты или процесса. Они содержат настройки и инструкции для различных систем и приложений. Часто это текстовые файлы, которые содержат имя переменной (параметра), за которой следует её значение. Большинство конфигурационных файлов Linux можно открыть с помощью обычного текстового редактора и обновить напрямую. Но для редактирования таких файлов вы, скорее всего, будете использовать редактор командной строки, например, Nano или Vim.

Конфигурационные файлы Linux используются для настройки параметров различных процессов операционной системы. Некоторые из этих файлов определяют доступ к сети и протоколы, в то время как другие инструктируют операционную систему о том, как получить доступ к серверам имён. Опытный администратор управляет Linux, редактируя конфигурационные файлы.

В разных дистрибутивах Linux используются не только разные конфигурационные файлы, но и соглашения об именах. Иногда конфигурационные файлы упоминаются только по имени, например «dhclient» или «nsswitch». А иногда на них можно ссылаться с расширением — с точкой или без нее, например, «dhclient.conf» или «nsswitch.conf».

Читайте также:  Ventoy мультизагрузочная флешка linux

В некоторых случаях на конфигурационные файлы можно ссылаться по расположению в каталоге, например, «/etc/dhclient.conf» или «/etc/nsswitch conf». Хотя соглашения об именах файлов могут немного измениться, как и их расположение в файловой системе, общая идея того, как редактировать отдельные конфигурационные файлы, остаётся прежней. Опытный администратор сможет применить советы из этой статьи к любому дистрибутиву Linux.

«Администрирование Linux. Мега»

Как редактировать конфигурационные файлы

Для редактирования конфигурационного файла нужно только найти его и открыть с помощью текстового редактора. Подавляющее большинство конфигурационных файлов Linux хранят свои данные в виде обычного текста, и изменение их содержимого и сохранение — всё, что требуется для обновления настроек. Для этой работы подойдет множество текстовых редакторов, и обычно их выбор зависит от личных предпочтений.

Многие конфигурационные файлы Linux можно найти в каталоге /etc/ или подкаталоге. Значительную часть времени они будут редактироваться через командную строку, поэтому осваивайтесь с такими приложениями, как Nano или Vi. Эти конфигурационные файлы обычно защищены от стандартных учётных записей пользователей, поэтому не забудьте изменить свои привилегии (можете использовать команду sudo или su). В противном случае могут возникнуть проблемы с поиском файлов.

Хотя настройки применяются сразу после сохранения отредактированного файла, приложения не будут воспринимать изменения до тех пор, пока вы не перезапустите приложение.

Конфигурационный файл network-scripts

Как и в Windows, в Linux есть конфигурационные файлы для каждого сетевого интерфейса. Они сообщают операционной системе сведения о названии интерфейса, следует ли использовать DHCP и должен ли быть включен IPv6. Здесь так стоит упомянуть, что сетевым интерфейсом может быть как виртуальное, так и физическое устройство, как проводное, так и беспроводное

Конфигурационный файл network-scripts — это файл, который управляет сетевым интерфейсом. Параметры конфигурации для данного устройства или виртуального интерфейса сохраняются и редактируются в конфигурационном файле, уникальном для каждого интерфейса в каталоге network-scripts.

Как настроить конфигурационный файл network-scripts

Существует два способа редактирования:

И REHL (и CentOS), и Ubuntu содержат графические утилиты для редактирования конфигурационных файлов. Эти графические утилиты доступны по-разному в зависимости от того, какой графический интерфейс вы используете.

Как правило, настройки можно найти в разделе «Сеть» или «Утилиты». В параметрах сети будут перечислены все интерфейсы, доступные в системе. При редактировании этих сетевых интерфейсов вы получите доступ к большинству настроек, упомянутых выше.

Другой способ редактирования — через текстовый редактор в командной строке. В этом случае вы используете приложение, например, Nano или Vi, чтобы открыть каждый файл и отредактировать его. В REHL все конфигурационные файлы указываются как отдельные файлы. В Ubuntu они находятся в одном файле по пути /etc/network/ file system.

Важно упомянуть, что для редактирования этих файлов вам потребуются повышенные привилегии. Если вы используете графический интерфейс, нужно ввести пароль root. Если командную строку — команду sudo.

Explanation

Источник

Оцените статью
Adblock
detector