여러 파일이 포함된 사용자 정의 패키지를 설치했습니다.
두 번째로 실행했을 때 rpm --upgrade
오류가 많이 발생했습니다.
File ABC from install of mypackage-1.0-0.i386 conflicts with file from package mypackage-1.0-0.i386
RPM이 오류 코드 5로 종료됩니다.
하지만 동일한 버전 번호를 가진 동일한 패키지입니다! "이미 설치됨"이라고 표시되어서는 안 되나요? 이 문제를 방지하려면 spec 파일이나 rpm 업그레이드 명령으로 무엇을 해야 합니까?
실행하면 rpm --upgrade --replacefiles
"패키지mypackage-1.0-0.i386종료 코드가 5인 "설치됨"
(파일이 변경되지 않았다면 파일을 교체하고 싶지 않습니다...
답변1
몇 가지 옵션이 있습니다. 가장 쉬운 방법은 rpm -U
(업그레이드) 명령이 제대로 작동 하도록 새 패키지를 빌드할 때 버전 및/또는 릴리스를 늘리는 것입니다 . 이 작업을 원하지 않으면 를 rpm -U --replacefiles --replacepkgs
사용하여 패키지를 효과적으로 다시 설치할 수 있습니다. 세 번째 옵션은 설치하기 전에 "새" 패키지를 제거하는 것입니다.
이러한 모든 경우에 일반 페이로드의 일부인(즉, noreplace
구성 파일로 표시되지 않은) 모든 파일은 최신 버전으로 대체됩니다. 이것이 RPM이 작동하는 방식입니다. 변경된 내용만 업데이트하려면 이전 버전과의 차이점만 포함된 DRPM 패키지(Delta RPM) 생성을 고려해야 합니다. 이렇게 하려면 다시 빌드할 때 버전 및/또는 버전 번호를 늘려야 합니다. 저는 증분 RPM 패키지를 만든 적이 없기 때문에 이에 대한 조언을 드릴 수 없습니다.