rubrapack 매뉴얼←↑→

1 시작하기 전에

매뉴얼의 이 부분은 따라 하며 배우는 튜토리얼이다. 가장 작은 설치 파일 - 프로그램 하나를 Program Files 에 복사하는 것 - 에서 시작해, 장마다 하나씩 더해 가며 끝에는 rubrapack 의 모든 기능을 한 번씩 써 본다. 장마다 앞 장에 이어서 쌓아 가므로 차례대로 읽는 것이 좋다. 컴퓨터를 쓸 줄 안다는 것 말고는 아무것도 가정하지 않는다. 바깥의 개념(GUID, 해시, 레지스트리 키 같은 것)이 필요하면 그 자리에서 설명하거나 "기초 지식" 부를 가리킨다.

1.1 설치 파일이 하는 일#

내 컴퓨터에 있는 프로그램은 그저 폴더 안의 파일들이다. 이것을 다른 사람에게 주려면 폴더를 그대로 보내도 된다 - 하지만 그러면 받는 사람이 둘 곳을 정하고, 시작 메뉴 항목을 직접 만들고, 나중에는 모든 것을 손으로 찾아 지워야 한다. 설치 파일이 그 일을 대신한다:

Windows 에는 이 일을 하는 엔진이 들어 있다: Windows Installer. 설치하는 프로그램을 짜는 것이 아니라, 무엇을 설치할지 기술한 파일인 패키지를 만들면 Windows Installer 가 그대로 실행한다. 패키지 형식은 둘이다:

형식파일설치하는 것주로 쓰는 곳
Windows Installer.msiWindows Installer(msiexec), Windows 2000 부터모든 종류의 데스크톱 프로그램; 회사는 관리 도구로 MSI 를 배포한다
MSIX.msix, .msixbundleWindows 10·11 의 앱 설치 관리자새 방식의 패키지 앱, Microsoft Store

rubrapack 은 같은 기술에서 둘 다 만든다. 튜토리얼은 대부분 MSI 를 다루고, 17장에서 같은 예제를 MSIX 로 바꾼다.

1.2 무엇을 쓰고 무엇이 만들어지나#

짧은 글 파일 하나, 원본을 TOML 로 쓴다 - 키 = 값 꼴의 간단한 형식이다. rubrapack 이 그것을 읽어 패키지를 쓴다:

  hello.toml  (내가 쓴다)
      |
      |   rubrapack build hello.toml -o hello.msi
      v
  hello.msi   (사용자에게 준다)
      |
      |   두 번 누르기, 또는: msiexec /i hello.msi
      v
  C:\Program Files\Hello\hello.exe   (Windows Installer 가 거기 둔다)

MSI 파일은 그 자체로 표 수십 개와 식별자와 압축 보관 파일이 든 작은 데이터베이스다 - 이 책의 제4부가 그것을 바이트 단위로 보여 준다. 그 표를 직접 쓸 일은 없다: rubrapack 이 원본에서 알아서 만든다.

1.3 rubrapack 받기#

rubrapack 은 따로 설치할 것 없는 프로그램 파일 하나다. 릴리스 페이지 https://github.com/rubidus-api/rubrapack/releases 에서 받는다:

PATH 에 들어 있는 폴더에 두면(어디서나 명령이 된다) 편하고, 작업 폴더에 그냥 두었다면 rubrapack 대신 .\rubrapack.exe(Windows)나 ./rubrapack(Linux)으로 친다. 이 튜토리얼은 그냥 rubrapack 으로 쓴다.

패키지는 Linux 에서도 만들 수 있지만, 설치해 보려면 Windows 가 있어야 한다. Windows 가상 머신이면 충분하다.

1.4 터미널을 처음 쓰는 사람을 위해#

rubrapack 에는 창이 없다: 명령을 쳐서 쓴다. Windows 에서 Windows 키를 누르고 terminal(또는 cmd)을 쳐서 Enter 를 누르면 프롬프트가 있는 창이 열린다. 예를 들어:

C:\Users\you>

> 앞의 부분이 지금 폴더다. 경로를 주지 않으면 명령은 그 폴더의 파일을 대상으로 한다. 필요한 명령은 셋이다:

명령하는 일
cd C:\work\helloC:\work\hello 폴더로 들어간다
dir (Linux: ls)지금 폴더의 파일을 보인다
mkdir dist여기에 dist 폴더를 만든다

해 보자: rubrapack version 은 판을 찍고, rubrapack help 는 명령 목록을 보인다.

C:\work\hello> rubrapack version
rubrapack 0.39.0 (proven_c_lib-v0.6.0)

1.5 작업 폴더#

모든 장이 같은 배치를 쓴다. 프로젝트용 폴더를 만들고, 그 안에 배포할 파일만 담는 dist("distribution", 배포) 폴더를 둔다:

C:\work\hello\
    dist\
        hello.exe        프로그램 - 자기 프로그램 아무것이나 된다
    hello.toml           원본(다음 장에서 쓴다)

마땅한 프로그램이 없으면 아무 .exe 로 배워도 된다. 설치 파일은 그것을 실행하지 않는다.

1.6 이 튜토리얼에서 쓰는 말#

말뜻
패키지사용자에게 주는 .msi(또는 .msix) 파일
원본내가 쓰는 .toml 파일; rubrapack 이 여기서 패키지를 만든다
설치 폴더사용자 컴퓨터에서 파일이 들어갈 곳, 예: C:\Program Files\Hello
제품Windows 가 보는 내 프로그램: 이름, 판, 제조사
업그레이드 코드제품의 모든 판을 하나로 묶는 고정된 식별자(2장)
기능(feature)사용자가 설치할지 말지 고를 수 있는 제품의 한 부분(8장)
컴포넌트(component)Windows Installer 의 설치 단위; rubrapack 이 알아서 만든다