como manter o yum de atualizar um arquivo que eu mudei?

4

Eu estou rodando o CentOS 6.8, eu mudei /etc/rc.d/init.d/sendmail (algo que eu não pude fazer em /etc/sysconfig/sendmail ) mas yum sobrescreveu o arquivo ao atualizar o sendmail. Existe uma maneira de configurar o yum para não atualizar certos arquivos, e em vez disso me avisar da mudança (e esconder a nova versão em algum lugar, para que eu possa mesclar minhas alterações com as atualizações)?

    
por Warren Burstein 15.09.2016 / 00:26

1 resposta

2

Você realmente não pode. yum (ou mais estritamente rpm ) depende do %config dentro do RPM para decidir que um arquivo é um arquivo de configuração, ou seja, um arquivo marcado com %config(noreplace) será salvo como .rpmnew quando um arquivo atualizado acontecer estar no RPM mais novo.

Você tem duas opções:

  • Faça o download do RPM (não atualize com você) e reembale-o com %config(noreplace) para /etc/rc.d/init.d/sendmail e instale com o yum.
  • Faça o download do RPM e use rpm --excludepath para instalar o pacote. Eu gosto mais dessa opção, é hacky, mas não tão hacky quanto editar o RPM toda vez que ele é atualizado. Veja abaixo:

Primeiro, exclua sendmail de ser atualizado com yum update , em /etc/yum.conf place

exclude=sendmail*

Isso fará com que yum nunca atualize o pacote sendmail , mas ele ainda será listado com yum check-update , assim você saberá que um novo RPM do sendmail está disponível. Você pode baixá-lo com:

yum install -downloadonly --installroot=. sendmail-<version>

Em seguida, use rpm com --excludepath para não atualizar o arquivo em /etc/rc.d :

rpm --excludepath /etc/rc.d/init.d/sendmail sendmail-<version>.rpm

Referência no %config :

por 15.09.2016 / 01:38