Como regra geral, qualquer coisa em /usr
ou /lib
deve ser considerada somente leitura e especialmente qualquer coisa que tenha sido instalada por um pacote. (Existem raras e infelizes exceções.) A menos que um arquivo tenha sido marcado de forma especial no pacote, as atualizações simplesmente sobrescreverão.
A maneira recomendada de alterar vários arquivos systemd é copiá-los para /etc
. Por exemplo, o arquivo de unidade /etc/systemd/system/nginx.service
substituirá o arquivo em / usr / lib. (Ele até mesmo substituirá as unidades de serviço init.d geradas automaticamente.) Use a ferramenta systemd-delta
para ver os diffs de todas as unidades sobrescritas.
Bem, eu digo "recomendado" porque ele também funciona com coisas como regras do udev e tal ... Mas um método ainda melhor é substituir apenas partes de uma unidade usando arquivos "drop-in" /etc/systemd/system/nginx.service.d/foobar.conf
- somente isto precisa de duas linhas, o nome da seção [Unit]
e sua nova configuração Description=
; o resto será herdado de / usr / lib.
Em ambos os casos, você pode usar systemctl edit [--full]
para abrir um editor e fazer as alterações.
Finalmente, a opção genérica do Debian é dizer ao sistema de empacotamento (dpkg) para evitar a atualização de um arquivo específico, não importando onde ele esteja localizado. Você pode "desviar" o arquivo real em outro lugar usando dpkg-divert
. Outras distros têm características semelhantes, por ex. O pacman do Arch usa NoExtract=
e NoUpgrade=
.