컴퓨터 프로그래밍 공부/자료구조와 알고리즘

윈도우 인스톨러

뽀또치즈맛 2024. 12. 17. 07:42

윈도우 인스톨러


윈도우 인스톨러란, 윈도우의 소프트웨어 설치, 유지, 제거를 위한 엔진이다.
이전에는 마이크로소프트 인스톨러라고 불렀다.
설치 정보는 설치 꾸러미 안에 저장되며,
기보노 파일 확장자 MSI 파일로도 알려져 있다.

마이크로소프트는 서드 파티 제품들이 원도우 인스톨러를 기본 설치 프레임워크로 사용을 돕고 있다.
롤백(되돌리기)과 버저닝(DLL hell = 윈도우 기반 프로그램에서 DLL을 사용할 경우 발생할 수 있는 복잡성을 나타내는 말이다.)과 같은
중요한 기능은 실제 동작을 위한 일정한 내부 데이터베이스에 따라 달라질 수 있다.


Windows Installer를 사용할 위치


Windows Installer를 사용하면 Windows에서 실행되는 제품 및 애플리케이션을 효율적으로 설치하고 구성할 수 있다.
설치 관리자는 기능을 설치하지 않고 보급하고,
필요에 따라 제품을 설치하고, 사용자의 사용자 지정을 추가하는 새로운 기능을 제공한다.

Windows Server 2012 또는 Windows Installer 5.0은 Windows RT 승인된 앱 설치를 지원한다.
Microsoft에서 서명하지 않은 Windows Installer 패키지, 패치 또는 변환은 Windows RT 설치를 할 수 없다.
(Windows RT는 즉, 공인 인증 앱의 설치를 보장해주고, 공인 인증 앱을 식별하는 기능을 한다.
하지만, 2017년 4월 12일, Windows RT의 지원이 일반과 연장의 구분 없이 모두 종료되었다.)


설치 패키지


설치 패키지에는 Windows Installer에서
애플리케이션이나 제품을 설치 또는 제거하고 설치 사용자 인터페이스를 실행하는데 필요한 모든 정보가 포함되어 있다.
각 설치 패키지에는 .msi 파일이 포함되어 있으며
여기에는 설치 데이터베이스, 요약 정보 스트림 및 설치의 다양한 부분에 대한 데이터 스트림이 있다.
.msi 파일에는 설치에 필요한 하나 이상의 변환, 내부 원본 파일과 원본 파이 ㄹ또는 캐비닛 파일에 포함될 수도 있다.

애플리케이션 개발자는
설치 관리자를 사용하려면 설치를 작성해야 한다.
설치 관리자는 구성 요소 및 기능의 개념을 중심으로 설치를 구성하고 설치에 대한 모든 정보를 관계형 데이터베이스에 저장하기 때문에
설치 패키지를 작성하는 프로세스에는 다음 단계가 광범휘하게 포함된다.

- 사용자에게 표시할 기능을 식별한다.
- 애플리케이션을 구성 요소로 구성한다.
- 설치 데이터베이스를 정보로 채운다.
- 설치 패키지의 유효성을 검사한다.

Windows Installer는 구성 요소 및 기능의 개념에 맞춰 설치를 구성한다.
기능은 사용자가 독립적으로 설치하기로 설정할 수 있는 애플리케이션의 전체 기능 중 일부이다.


설치 메커니즘


성공적인 설치 프로세스에는 획득 및 실행이라는 두 단계가 있다.
설치에 실패하면 롤백 단계가 발생할 수 있다.


획득(= 취득)

취득 단계가 시작될 때 애플리케이션 또는 사용자가 설치 관리자에게 기능 또는 애플리케이션을 설치하도록 지시한다.
그러면 설치 관리자는 설치 데이터베이스의 시퀀스 테이블에 지정된 작업을 진행한다.
이러한 작업은 설치 데이터베이스를 쿼리하고 설치를 수행하기 위한 단계별 절차를 제공하는 스크립트를 생성한다.

실행

실행 단계에서 설치 관리자는 관리자 권한이 있는 프로세스에 정보를 전달하고 스크립트를 실행한다.

롤백

설치에 실패하면 설치 관리자는 컴퓨터의 원래 상태를 복원한다.
설치 관리자가 설치 스크립트를 처리할 때 동시에 롤백 스트립트를 생성한다.
롤백 스크립트 외에도 설치 관리자는 설치 중에 삭제하는 모든 파일의 복사본을 저장한다.
이러한 파일은 숨겨진 시스템 디렉터리에 보관된다.
설치가 완료되면 롤백 스크립트와 저장된 파일이 삭제된다.


구성 요소 관리


Windows Installer는 설치 및 런타임 동안 고객이 애플리케이션 구성 요소를 관리하고
유지 관리하는 기능을 향상시켜 애플리케이션의 총 소유 비용(TCO)을 줄인다.
설치 데이터베이스는 특정 구성 요소가 필요한 애플리케이션,
각 구성 요소를 구성하는 파일, 시스템에서 각 파일이 설치된 위치 및 구성 요소 원본이 있는 위치를 추적합니다.
이를 통해 개발자는 다음과 같은 이점을 제공하는 패키지를 작성할 수 있다.

주문형 설치


기존 설치 기술을 사용하면 애플리케이션을 종료하고 설치 적업을 수행하기위해 설치 프로그램을 다시 실행해야 한다.
이는 사용자가 설치를 처음 실행하는 동안 선택되지 않은 기능 또는 제품을 원할 때 일반적으로 발생한다.
이로 인해 사용자가 제품을 사용하기 전에 필요한 기능을 예상해야 했기 때문에 제품 구성 프로세스가 비효율적 경우가 많다.

주문형 설치를 사용하면 파일 자체가 없을 때 사용자 및 애플리케이션에 기능을 제공할 수 있다.
이 개념을 보급이라고 한다.
Windows Installer는 보급 기능과 애플리케이션 기능은 전체 제품의 주문형 설치를 가능하게 하는 기능을 갖추고 있다.
사용자 또는 애플리케이션이 보급된 기능이나 제품을 활성화하면
설치 관리자가 필요한 구성 요소의 설치를 진행한다.
이를 통해 다른 설치 절차를 종료하고 다시 실행하지 않도록추가 기능에 액세스할 수 있으므로 구성 프로세스가 단축된다.

Windows Installer는 보호된 파일을 설치하거나 바꾸려고 시도하지 않는다.
InstallFiles 작업 또는 InstallFiles가 Windows Server 2003, Windows XP 또는 Windows 2000에 보호된 파일을 설치하려고 시도하기 전에
예약된 다른 작업이 있으면 설치 관리자는 보호된 파일을 설치하거나 교체하라는 요청과 함께 WFP를 호출한다.
설치 관리자는 InstallFiles 작업을 실행한 직후 WFP에서 파일 설치를 요청한다.
WFP는 사용자 시스템의 파일을 보호된 파일의 캐시 된 버전으로 설치하거나 교체한다.

애플리케이션의 무인 설치에 의해 보호된 시스템 파일이 수정되면
WFP는 파일을 확인된 파일 버전으로 복원한다.
Windows Installer는 보호된 파일을 설치하거나 바꾸려고 시도하지 않는다.
InstallFiles 작업 또는 InstallFile
이것은 캐시에서 설치된 파일의 버전이 애플리케이션에 필요한 버전임을 보장하지는 않는다.
WFP가 파일을 설치한 후 설치 관리자는 이 버전이 패키지의 버전과 일치하는지 여부를 결정한다.

패키지의 파일 버전이 설치된 버전보다 높은 경우 설치 관리자는 시스템을 업데이트할 수 없으며
애플리케이션에 운영 체제 업데이트가 필요할 수 있음을 사용자에게 알린다.