O arquivo .rpmnew não foi criado na atualização do pacote?

O arquivo .rpmnew não foi criado na atualização do pacote?

Atualmente estou testando a instalação de um RPM com um arquivo de configuração usando a config(noreplace)diretiva.

Conformeusando configuração(noreplace)meu arquivo de especificações marca um único arquivo como um arquivo de configuração:

%config(noreplace) /opt/lm/dest/conf/db.xml

Fiz uma modificação no disco no arquivo para a versão 1 e continuei a atualizar para a versão 2. Eu esperava que a saída detalhada (ao usar -Uvh) indicasse que ele criou um db.xml.rpmnewarquivo que não criou, no entanto, as modificações no disco que fiz estão intactos.

Alguém sabe por que isso pode ser o caso?

Algumas informações básicas: estou usando o mesmo arquivo tar para criar as versões 1 e 2, o que não deve fazer diferença, mas pensei em mencioná-lo de qualquer maneira.

EDITAR 1:

Caso não esteja claro que o db.xml.rpmnewarquivo não foi criado.

Responder1

O que você observa é o comportamento esperado. A.rpmnewo pacote só é criado quando ambas as condições a seguir são atendidas:

  1. o arquivo de configuração padrão no novo pacote RPM é diferente do arquivo de configuração que foi originalmente incluído na versão atual/anterior do pacote RPM. (As alterações nos padrões foram feitas pelo mantenedor do pacote.)
  2. o arquivo de configuração real no disco foi alterado do padrão que estava incluído na versão atual/anterior do pacote. (As alterações nos padrões foram feitas pelo administrador.)

De acordo com o Changelog:

commit e64bf5b93ab689e6031fce4489e4ae38ebaebef1
Autor: Panu Matilainen
Data: terça-feira, 28 de agosto 09:04:09 2007 +0300

Evite .rpmnew quando o arquivo não tiver sido alterado no pacote (rhbz#194246)

O comportamento atual de %config(noreplace) cria um .rpmnewfile se o tipo do arquivo atual tiver sido alterado para o que foi originalmente instalado.

O patch altera esse comportamento, então quando o antigo e o novo (no banco de dados e no pacote) são idênticos -> não alterados, a função retorna FA_SKIP -> não atrapalha nada, simplesmente pula a instalação do arquivo do pacote. Este patch também trata o caso oposto quando pacotes antigos e novos contêm %configlinks simbólicos e temos arquivos regulares no disco.

Patch from Tomas Mraz.

informação relacionada