오픈소스 제품의 윈도우 패키징을 위해 Postgresql 대상으로 배포판을 만들어봅니다.
Postgresql 소스는 리눅스 기준으로 작성되었기 때문에, 윈도우 실행을 위해서는 Visual Studio 를 사용하여 윈도우 실행 파일인 exe 파일들로 빌드해야 합니다.
Postgresql 윈도우 배포판 빌드하기
- linux 기반의 실행파일들이 모두 exe 형태로 빌드 되어야 함
- 이를 위해 Visual Studio 를 사용해 컴파일, 링킹 과정을 수행해야 함
- →
${POSTGRES_SRC}/src/tools/msvc
위치에 관련 스크립트 포함
- →
Postgresql 소스 빌드 환경 만들기
관련 자료 : Working With VisualStudio
- Windows 10 권장 (8.1 이상)
- Visual Studio Professional 2017 설치
- → GUI 환경 쓸거 아니라서 나중에 expired 되도 상관 없다.
- cmd 실행 옵션에 vcvars64.bat 환경설정 연결 (이것으로 빌드 진행)
%windir%\system32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
- ActivePerl 설치 (중요!)
- 다운로드 ActivePerl
- Perl.org 에 있는 Strawberry 나 ActiveState 의 Perl 제품 설치하지 말것! → 안된다
- MinGW 설치 : Bison, Flex
- 환경변수 Path 에
${MinGW_ROOT}/msys/1.0/bin
등록 - Perl 은 제거 (중요!) → 지우거나 확장명을 바꿔버릴것
- 환경변수 Path 에
postgresql 소스 빌드
pg 소스에는 Visual Studio 관련 프로젝트 파일이 없지만, build 실행시 perl 스크립트에 의해 vcproj 파일과 sln 파일이 자동으로 생성된다. 때문에 설치 환경 구성시 perl이 제일 중요하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# build 명령은 이 위치에서 실행해야 함
cd %PG_SRC_ROOT%\src\tools\msvc
# 파라미터 DEBUG 또는 RELEASE (없으면 RELEASE)
# ==> 정상 종료시 %PG_SRC_ROOT% 위치에 `pgsql.sln` 솔루션 파일 생성
# ==> MinGW 와 함께 설치된 bison, flex 등의 명령어가 사용됨
build
# 배포판이 설치될 위치를 파라미터로 입력
install D:\pg_install
# 리그레션 테스트 (생략 가능)
# ==> MinGW 와 함께 설치된 diff 명령어가 사용됨
vcregress check
빌드 성공 : pgsql.snl
생성
생성된 exe 파일들
이후 작업
Windows 인스톨러로 설치 패키지 생성
- BitRock 에서 만든 InstallBuilder 도구 등을 이용해 제작
- icon 과 sidebar 이미지, LICENSE 파일,
vcredist_x64.exe
을 포함해 패키지 생성vcredist_x64.exe
는 소스 빌드에 사용된 Visual Studio 버전을 따른다Microsoft Visual C++ 2017 Redistributable (x64)
파일
끝! 읽어주셔서 감사합니다.