오늘은 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
+ 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
+ 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) 프로그램을 설치하라고 되어 있습니다. 또한 FindProc 과 MoreInfo 플러그인을 설치하라고 되어 있습니다. 이걸 설치하지 않으면 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;
}
#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 이외의 프로그램을 패키징하는데 응용해 볼 수 있을 것입니다. 그럼~
'재능 찾기 > 컴퓨터 팁' 카테고리의 다른 글
유투브 동영상 다운 받기 두 번째 방법 (0) | 2009.06.09 |
---|---|
m4a mp3 변환 (3) | 2009.06.08 |
Lingoes 사전을 USB 에 넣고 다닐 수 있는 방법 (0) | 2009.04.05 |
Sisa_e4u 발음기호 문제 해결하기 (0) | 2009.03.28 |
StarDict(WeDict) 컴퓨터에 설치하기 (4) | 2009.03.26 |