패키지 업그레이드 시 .rpmnew 파일이 생성되지 않습니까?

패키지 업그레이드 시 .rpmnew 파일이 생성되지 않습니까?

현재 지시문을 사용하여 구성 파일로 RPM 설치를 테스트하고 있습니다 config(noreplace).

에 따라config(noreplace) 사용내 사양 파일은 단일 파일을 구성 파일로 표시합니다.

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

버전 1의 파일을 디스크에서 수정하고 버전 2로 업그레이드했습니다. 를 사용할 때 자세한 출력이 을 생성했지만 디스크에서 수정하지 않았음을 -Uvh나타내기를 기대하고 있었습니다. db.xml.rpmnew손상되지 않았습니다.

왜 이런 일이 일어날 수 있는지 아는 사람이 있습니까?

몇 가지 배경 정보: 동일한 tar 파일을 사용하여 버전 1과 2를 모두 생성하고 있는데 차이가 없어야 하지만 어쨌든 언급할 것이라고 생각했습니다.

편집 1:

확실하지 않은 경우 db.xml.rpmnew파일이 생성되지 않았습니다.

답변1

당신이 관찰하는 것은 예상되는 동작입니다. ㅏ.rpmnew패키지는 다음 조건이 모두 충족되는 경우에만 생성됩니다.

  1. 새 RPM 패키지의 기본 구성 파일은 원래 RPM 패키지의 현재/이전 버전에 포함된 구성 파일과 다릅니다. (패키지 관리자가 기본값을 변경했습니다.)
  2. 디스크의 실제 구성 파일이 패키지의 현재/이전 버전에 포함된 기본값에서 변경되었습니다. (기본값은 관리자가 변경했습니다.)

변경 로그에 따르면:

커밋 e64bf5b93ab689e6031fce4489e4ae38ebaebef1
작성자: Panu Matilainen
날짜: 8월 28일 화요일 09:04:09 2007 +0300

패키지에서 파일이 변경되지 않은 경우 .rpmnew를 사용하지 마세요(rhbz#194246).

%config(noreplace)의 현재 동작은 현재 파일의 유형이 원래 설치된 유형으로 변경된 경우 .rpmnewfile을 생성합니다.

패치는 이 동작을 변경하여 이전 버전과 새 버전(db 및 패키지)이 동일할 때 -> 변경되지 않았으며 함수는 FA_SKIP을 반환합니다. -> 아무것도 방해하지 않고 단순히 패키지에서 파일 설치를 건너뜁니다. 이 패치는 이전 패키지와 새 패키지 %config에 심볼릭 링크가 포함되어 있고 디스크에 일반 파일이 있는 경우 반대의 경우도 처리합니다 .

Patch from Tomas Mraz.

관련 정보