데비안 패키지에 따르면유지관리자 스크립트 문서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 -l
preinst
install
- 패키지가 새로 설치되었거나 이전에 제거된 경우 버전 정보 없이
preinst
호출됩니다 .install
preinst
압축 풀기 단계 이전에 실행되므로 이전 upgrade
버전의 패키지 콘텐츠를 사용할 수 있음을 의미하는 반면, install
패키지 콘텐츠(구성 파일 제외)의 버전은 존재하지 않음을 의미합니다. 또한 버전 정보가 제공되면 처리해야 할 구성 파일이 있을 수 있음을 나타냅니다.
upgrade
와 사이의 차이는 install
중요하지 않지만, 내보낸 데이터와 관련된 업그레이드가 생각나는 시나리오 중 하나입니다. 예를 들어 upgrade
모드 에서는slapd
preinst
데이터베이스 내보내기install
; 해당 도구가 존재하지 않기 때문에 모드에서는 이 작업을 수행 할 수 없습니다 .
답변2
고려하다:
- 패키지 A, 버전 x를 설치합니다.
- 패키지 A를 제거했지만 제거하지 않았으므로 프로필, 사용자, 그룹 등이 그대로 남아 있습니다.
- 패키지 A, 버전 y를 설치합니다.
이제 관리자 스크립트는 이러한 프로필, 사용자, 그룹 등을 처리해야 합니다. 엄밀히 말하면 업그레이드하는 것이 아니라 설치만 하는 것입니다. 두 번째 순서도에서 이를 확인할 수 있습니다."이전에 제거되었지만 제거되지 않은 패키지를 설치합니다"