본문 바로가기

Engineering/Etc

make nsis in Linux

728x90

윈도우용 인스톨 패키징 소프트웨어라 많이 사용되는 NSIS(makensis) 를 Linux 에서 윈도우 설치 파일을 생성할 수 있게 하는 방법을 찾아서 정리해 보았다. 그렇지만 결론적으로 얘기하자면 제대로 안된다. 윈도우용 패키징 파일을 결국 만들고 실제 설치를 진행해보니, 일부 설치 스텝(step)에서 한글이 깨지는 것이 나온다. 그래서, 혹시 UNICODE 버전을 어떨까 고려해보았지만, UNICODE 버전은 윈도우 전용 함수를 사용하는 부분이 있어서 역시 컴파일이 제대로 안된다. 소스코드도 수정해보고 이러저리 방법을 찾아보았지만 결국은 포기. 간단한 패키지라면 혹시나 사용할 수 있을까 모르겠다만, Linux 에서 윈도우 바이너리가 생성되는것에만 만족을 해야하는지. 


간단하게 정리하자면,

1. 소스가 아닌 nsis-2.46.5 설치 파일을 다운받아서 시스템에 설치 : 5번 사이트에서 다운로드

# cd /usr/local/share/nsis-2.46

# ln -s nsis-2.46 nsis

2. scons 다운로드 : 6번 사이트에서 다운로드

3. nsis-2.46.5 소스를 다운받고 아래 명령어를 실행

scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=yes \
 APPEND_LIBPATH="/usr/local/lib" APPEND_CPPPATH="/usr/local/include" NSISDIR=/usr/local/share/nsis \
 PREFIX_CONF=/usr/local/etc PREFIX_BIN=/usr/local/bin PREFIX_DATA=/usr/local/share/nsis \
 PREFIX=/usr/local/share/nsis install-compiler


도움받은 사이트

1. makensis 컴파일 방법. 단순하게 난 이렇게 했다고 자랑만 한 사이트. 그래도 가능하다는 확신은 얻었음.

http://www.flinkwise.com/technology-blog/compiling-makensis-under-x64/


2. makensis 컴파일 방법. 컴파일 방법 및 소스 위치에 대한 소개

https://github.com/anathema/anathema/wiki/How-to-compile-NSIS-for-POSIX-systems


3. makensis 를 BSD 에서 컴파일한 방법으로 상세하게 설명. 빌드 스크립트도 도움이 됨.

http://wiki.koshatul.com/Installing_Nullsoft_Scriptable_Installer_System_(NSIS)_on_BSD


4. NSIS 의 sourceforge 사이트

http://sourceforge.net/p/nsis/wiki/Home/


5. 여러 버전의 NSIS 패키지/소스를 얻을 수 있는 사이트

https://code.google.com/p/unsis/downloads/list


6. SCONS : 크로스컴파일을 가능하게 해준 빌드 시스템. make 랑 달라서 의외로 고전함.

http://www.scons.org/