패키지 관리자 사전 설치 스크립트 "설치" 및 "업그레이드"

패키지 관리자 사전 설치 스크립트 "설치" 및 "업그레이드"

데비안 패키지에 따르면유지관리자 스크립트 문서install, 사전 설치 스크립트는 첫 번째 인수 또는 첫 번째 인수를 사용하여 호출할 수 있습니다 upgrade.

스크립트 preinst는 다음을 통해 호출할 수 있습니다.

  • new-preinst설치하다
  • new-preinst설치하다이전 버전 새 버전
  • new-preinst업그레이드이전 버전 새 버전

install old-version new-version이들그리고 그리고 의 차이점은 무엇인가요 upgrade old-version new-version? 첫 번째 형식(그냥 install)은 명확해 보이지만 이전 버전 번호와 새 버전 번호의 차이점 install과 이를 어디에 지정해야 하는지 이해가 되지 않습니다.upgrade

답변1

이에 대한 설명은 다음과 같습니다.'세부정보' 섹션:

  • 패키지가 완전히 설치된 경우 이전 버전과 새 버전이 preinst호출에 사용됩니다.upgrade
  • 패키지가 이전에 설치되었고 여전히 구성 파일이 있는 경우("Config-Files" 상태)이전 버전과 새 버전으로 호출된 출력 rc으로 표시됩니다 .dpkg -lpreinstinstall
  • 패키지가 새로 설치되었거나 이전에 제거된 경우 버전 정보 없이 preinst호출됩니다 .install

preinst압축 풀기 단계 이전에 실행되므로 이전 upgrade버전의 패키지 콘텐츠를 사용할 수 있음을 의미하는 반면, install패키지 콘텐츠(구성 파일 제외)의 버전은 존재하지 않음을 의미합니다. 또한 버전 정보가 제공되면 처리해야 할 구성 파일이 있을 수 있음을 나타냅니다.

upgrade와 사이의 차이는 install중요하지 않지만, 내보낸 데이터와 관련된 업그레이드가 생각나는 시나리오 중 하나입니다. 예를 들어 upgrade모드 에서는slapdpreinst데이터베이스 내보내기install; 해당 도구가 존재하지 않기 때문에 모드에서는 이 작업을 수행 할 수 없습니다 .

답변2

고려하다:

  1. 패키지 A, 버전 x를 설치합니다.
  2. 패키지 A를 제거했지만 제거하지 않았으므로 프로필, 사용자, 그룹 등이 그대로 남아 있습니다.
  3. 패키지 A, 버전 y를 설치합니다.

이제 관리자 스크립트는 이러한 프로필, 사용자, 그룹 등을 처리해야 합니다. 엄밀히 말하면 업그레이드하는 것이 아니라 설치만 하는 것입니다. 두 번째 순서도에서 이를 확인할 수 있습니다."이전에 제거되었지만 제거되지 않은 패키지를 설치합니다"

관련 정보