패키지 설치 실패 및 롤백 옵션

패키지 설치 실패 및 롤백 옵션

저는 패키지(rpm, deb, dpkg) 생성이 어떻게 작동하는지, 아키텍처가 무엇을 지원하고 지원하지 않는지 이해하려고 노력하고 있습니다.

이제 프로세스의 여러 지점에서 패키지 설치 또는 업그레이드가 실패할 때 어떤 일이 발생하는지 파악하는 데 어려움을 겪고 있습니다. 즉, 스크립트 오류, 디스크 공간 부족(시작하기 전에 확인하셨나요?) -.

현재 이해에 따르면 이전 작업 버전으로의 자동 롤백은 전혀 없습니다. 그래서 내 질문은 패키지가 이 상황을 어떻게 처리하는가입니다. 단순히 파일을 백업하고 트랜잭션이 발생한 후 오류가 발생하면 복원하기 위한 스크립트가 아닌가요? (아직까지 예를 찾을 수 없습니다)

감사해요.

답변1

데비안(보통 파생물)의 경우 이는 다음과 같습니다.관리자 스크립트에 관한 데비안 정책 장그리고해당 흐름도. 오류는 dpkg(패키지 추출 등을 처리하는 도구)와 유지 관리자 스크립트의 조합으로 처리됩니다.

패키지를 업그레이드하는 경우:

  1. 기존 패키지에 대한 사전 제거 스크립트 호출
  2. 새 패키지의 사전 설치 스크립트는 다음과 같습니다.
  3. 새 패키지의 파일이 압축 해제되었습니다.
  4. 기존 패키지에 대한 제거 후 스크립트 호출
  5. 기존 패키지의 파일이 삭제됩니다.
  6. 새 패키지에 대한 설치 후 스크립트를 호출합니다.

언제든지 오류가 처리되고 "실행 취소" 매개변수를 사용하여 다양한 유지 관리자 스크립트가 호출되어 이전 단계에서 변경한 내용을 되돌립니다. 결국 패키지는 다음 상태 중 하나가 될 수 있습니다.

  • 새 버전 전체 설치(모든 것이 순조롭게 진행되는 경우)
  • 기존 버전에 완전히 설치됩니다(무언가 문제가 발생하지만 모든 변경 사항을 취소할 수 있는 경우).
  • 압축이 풀렸으며 구성이 필요함
  • 실패했습니다. 다시 설치해야 합니다.

많은 패키지의 경우 관리자 스크립트의 도움 없이 기본 처리만으로 충분합니다. 다른 패키지는 훨씬 더 복잡합니다.예를 들어버전 간에 데이터베이스와 스키마가 변경된 버전(참조관리자 slapd스크립트예를 들어) 어떤 경우에는 실제로 중단된 업그레이드를 자체적으로 처리하지 않고 대신 기존 상태의 백업을 남겨두고 관리자에게 문제 해결을 요청합니다.

관련 정보