오늘은 PortableApps 에 설치가 가능한 인스톨러(Instaler)를 만들어보려고 합니다. 아래와 같이 프로그램을 관리할 수 있는 어플리케이션의 이름은 플랫폼(platform) 이라고 부르기로 하겠습니다.


뭐, 제가 많이 알고 있어서 이 글을 쓰는 것은 아니고, PortableApps.com 홈페이지에 나온 development 페이지를 따라서 해보는 것을 올리는 것입니다. 대충 따라할 것이니, 상세한 내용은 해당 웹페이지를 참고하시면 될 듯 합니다.

먼저 Beginner's Guide 가 나옵니다.

Step 1: The Idea 에서는 portable 로 할 만한 어플리케이션인지 먼저 살펴보라고 합니다.
 
Step 2: The Licensing 에서는 상업용 라이센스인지 오픈소스 라이센스인지 알아보고 배포해도 괜찮은지 생각해 보라고 하고 있습니다.

Step 3: The Analysis 에서는 분석에 들어갑니다. 프로그램이 어떤 디렉토리를 사용하는지, 레지스트리를 사용하는지 ini 파일을 사용하는지 등등.

Step 4: The Code 에서는 인스톨러 만드는 것에 대한 이야기가 나옵니다. 기존 포터블앱스들에 NSIS 인스톨러 제작 소스가 포함되어 있으니 보고 하라고 합니다.

Step 5: Compression 은 배포를 위해 성능 좋은 압축을 하라고 하고 있고,

Step 6: Hosting 에서는 배포에 대한 이야기를 하고 있습니다.

Step 7: Testing 마지막으로 테스트하고, 버그가 나오면 수정 하라는 이야기 등등.


자 그럼 곧바로 작업 들어갑니다. 제 스타일이죠~ 일단 해보는 것! Lingoes portable edition 으로 한번 인스톨러를 만들어보도록 하겠습니다.

Step1. 네, portable 로 만들면 참 좋을 것 같습니다.
Step2. freeware 이긴 한데, 배포에 대한 명세는 잘 못찾겠습니다. 이건 잘 모르겠네요.
Step3. 이미 portable version 으로 되어 있기 때문에 문제가 없습니다.
Step4. 네, 따라해보려고 합니다.
Step5. 뭐, 잘 압축되겠지요.
Step6. 저는 그냥 tistory 블로그에서 배포하려고 합니다.
Step7. 사람들이 많이 쓸까 모르겠지만, 버그 수정에 시간을 들이고 싶진 않네요^^ ㅋ

PortableApps.com Format 을 보니, 아래와 같이 디렉토리를 맞추어야 하네요.
AppNamePortable
+ App
  + AppInfo
  + AppName
  + DefaultData
+ Data
+ Other
  + Help
    + Images
  + Source

그런데, Lingoes portable 은 아래와 같이 많이 다르게 생겼습니다.
lingoes_portable_2.5.3
+ appe
+ data
+ dict
+ font
+ help
+ icon
+ image
+ lang
+ speech
+ textseg
+ update
+ webe

저에게 Lingoes 소스도 없거니와 경로를 바꿀 수는 없기에 그냥 PortableApps.com Format과 비슷하게 App 하단으로 넣기로 정하겠습니다~

이제 Installer 를 만들어 보겠습니다.

1. NSIS 준비
  PortableApps Installer 웹페이지를 보면 먼저 NSIS(NullSoft Scriptable Installer System) 프로그램을 설치하라고 되어 있습니다. 또한 FindProcMoreInfo 플러그인을 설치하라고 되어 있습니다. 이걸 설치하지 않으면 Installer 제작시 "Invalid command: FindProcDLL::FindProc" 과 같은 에러 메세지가 나타나게 됩니다. 이는 script 를 잘못 작성한 게 아니라, 단지 플러그인이 설치되지 않아서 해당 함수를 사용하지 못하는 것입니다. 플러그인을 다운 받아 NSIS 플러그인 디렉토리에 넣어주면 해결되는 문제지요~



2. 아이콘 준비
 LingoesPortable\App\AppInfo 디렉토리 하단에는 appicon.ico 파일이 있어야 Installer 에러가 발생하지 않습니다. 아이콘 제작 프로그램을 제작해도 되겠지만, 저는 대충 하겠습니다. ResHack 을 다운받아서 Lingoes.exe 의 아이콘 그룹을 appicon.ico 으로 추출하면 되겠습니다^^
 

3. LingoesPortable.exe 제작
 PortableApps.com Format 에 따르면 AppNamePortable 하단에 LingoesPortable.exe 와 같은 파일이 있어야 한다고 합니다. 그런데, 저는 AppNamePortable\App 밑으로 모조리 파일을 넣어두었기 때문에 AppNamePortable 하단에는 아무런 파일이 없게 됩니다. 그래서 단순히 App 밑에 있는 Lingoes.exe 를 실행해주는 파일을 하나 제작했습니다. 소스는 아래와 같이 단순합니다. 함수원형실행예제를 보고 VC++ 6.0 으로 만들었습니다. 
#include "stdafx.h"
#include "windows.h"
#include "shellapi.h"
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
ShellExecute(NULL, "open", "Lingoes.exe", NULL, "App", SW_SHOW);
 
return 0;
}

Lingoes 용으로 이런 그림 하나 뜨워주면 금상첨화겠네요~

 LingoesPortable.exe 아이콘이 밋밋해서 ResHack 으로 Lingoes.exe 아이콘을 덧붙여 주었습니다.

4. Installer 스크립트 제작
 PortableApps.com Installer 를 다운받아 PortableApps.comInstallerConfig.nsh 파일만 수정해줍니다. 버젼이나 파일명 정도만 수정해 주어도 됩니다. 스크립트들이 저장될 위치는 LingoesPortable\Other\Source 입니다. PortableApps.comInstaller.nsi 파일을 컴파일해주면 Installer 가 만들어지도록 이미 잘 만들어져 있습니다.


아래와 같이 주르륵 컴파일이 되고, 에러가 없다면 마지막에는 자동으로 압축을 진행해서 컴팩트한 Installer 를 만들어줍니다. "Test Installer" 를 클릭하면 설치를 실행합니다. 

아래와 같이 예쁜 Installer 가 만들어졌습니다. 프로그램명_Portable_버젼.paf.exe 라는 이름을 갖고 있네요. 

 소스랑
 Installer 올립니다.
필요하면, 사전 설정을 변경하거나 사전 데이터를 추가해서 Installer 를 다시 만들 수 있겠지요? 혹은 Lingoes 이외의 프로그램을 패키징하는데 응용해 볼 수 있을 것입니다. 그럼~
Posted by 마몸

최근에 올라온 글

카테고리

모두 (498)
We BLOG (353)
테라피 (72)
재능 찾기 (62)

달력

«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

글 보관함