Изменить чужие файлы с помощью пакета debian

Я создаю пакет Debian. Это придется изменить /etc/inittab переключать tty1 от /sbin/getty в /sbin/rungetty,

Конечно, я могу изменить строку с sed в постинст. Это лучший способ сделать это или есть какой-нибудь дебианский способ сделать это?

заранее спасибо

1 ответ

Решение

Способ решения этой проблемы в Debian описан в Руководстве по политике Debian в разделе 10.7.4"Совместное использование файлов конфигурации". Сложность состоит в том, что политика Debian диктует, что ни один пакет не должен напрямую изменять файл конфигурации из другого пакета. Вместо этого пакет-владелец должен предоставлять помощников, которые другие пакеты могут использовать для изменения конфигурации.

На большинстве систем /etc/inittab будет предоставлен пакетом sysvinit, поэтому, чтобы соответствовать политике Debian, sysvinit пакет должен быть изменен, чтобы дать вашему пакету механизм для изменения inittab. sysvinit - не единственный пакет, который может предоставлять /etc/inittab Это также может произойти от выскочки, поэтому выскочка тоже должна будет измениться. другие могут не иметь /etc/inittab, Если ваше программное обеспечение зависит от одной конкретной реализации, или будет работать со сбоями без каких-либо /etc/inittab В настоящее время вам нужен ваш пакет, чтобы явно зависеть от предоставления пакета /etc/inittab,

Это вряд ли что-то случится. Другие вещи, которые следует принять во внимание, это то, что изменения, внесенные в файлы конфигурации системным администратором, никогда не должны перезаписываться пакетом, поэтому, если вы сделаете какое-то изменение, администратор отменит или изменит то, что вы изменили, вы не должны изменять его снова. его, если ваш пакет реконфигурирован или обновлен (возможно, без запроса разрешения администратора).

Помимо этих правил о том, когда вы можете изменять файлы, в политике или соглашении нет ничего, что указывало бы, какие инструменты использовать для этого. sed это один из многих широко используемых инструментов.

Другие вопросы по тегам