루비를 애용하시는 많은 분들의 고민 중 하나가 바로 배포 관련 문제일 겁니다.
대부분 컴퓨터에는 루비 인터프리터가 설치되어있지 않기 때문에 자신의 루비 코드를 배포하려면 인터프리터 까지 다운 받도록 해야 합니다.
하지만 몇 kb 되지 않는 루비 코드를 실행시키려고 20메가 가량 되는 인터프리터를 추가로 기꺼이 다운받으려는 분들이 그리 많지는 않을 겁니다. 특히, qtruby 처럼 외부 라이브러리가 필요한 경우는 문제가 더욱 심각해집니다. 용량의 문제보다도, 이들을 설치하기에는 너무 바쁘고 귀찮습니다.
다행히도 이러한 문제를 해결해주는 두 프로그램이 있습니다. tar2rubyscript와 rubyscript2exe 라는 프로그램인데요, tar2rubyscript는 여러개의 루비 코드를 하나로 묶어주고, rubyscript2exe는 루비 코드를 완전히 독립된 응용프로그램 (윈도우용 exe, 리눅스용 또는 맥용 바이너리) 으로 만들어줍니다.
두 프로그램 모두 하나의 루비 코드로 되어있고, 별 다른 설치 필요없이 바로 작동합니다. 물론 루비 인터프리터는 있어야 겠죠
사용법은 간단합니다.
커맨드라인 창에서 ruby rubyscript2exe.rb application.rb 를 입력하시면 해당 폴더에 application.exe 라는 파일이 생기고, 이를 곧바로 배포할 수 있습니다. 이렇게 생성된 프로그램은 시작하기 전에 동작에 필요한 파일들을 수집합니다. 이 때문에 프로그램 실행 시 약 5초 정도의 딜레이가 있습니다.
커맨드라인 창에서 ruby tar2rubyscript.rb program/ 를 입력하시면 해당 폴더에 program.rb 가 생성됩니다. 이 파일 하나가 program/ 폴더 안의 여러 루비 코드 들을 모두 포함하고 있습니다. 메인으로 실행 시켜야 할 코드의 이름을 init.rb 로 해주셔야 잘 작동합니다.
간혹 init.rb 를 폴더 안에 넣었음에도 program 폴더로부터 생성한 program.rb를 실행 할 시 init.rb가 없다면서 오류가 나는 경우가 있습니다. 왜인지는 잘 모르겠지만, 이럴 경우에는 폴더를 지우고 ruby program.rb --tar2rubyscript-justextract 를 실행하여 압축을 풀어서 program 폴더를 얻습니다. 이 폴더에 다시 ruby tar2rubyscript.rb program/ 명령을 실행시키면 이 때 만들어지는 program.rb는 잘 작동하게 됩니다.
rubyscript2exe와 tar2rubyscript는 윈도우, 리눅스, 맥에서 모두 작동합니다.
rubyscript2exe의 경우 맥에서 이용하려면 eee_darwin 이라는 파일을 자신이 직접 컴파일 해야 하는데, 제작자 홈페이지에서 지시하는 대로 따라서 하면 됩니다. 그런데 최신 버전 맥에서는 제대로 작동하지 않더군요.
이 프로그램 들은 각각 다음 주소에서 다운 받으실 수 있습니다. 루비 코드 뿐 아니라 gem 형태로도 배포하고 있습니다. 여러가지 옵션들에 대한 설명들도 있으니 들어가서 읽어보시면 도움이 됩니다.
http://www.erikveen.dds.nl/rubyscript2exe/#6.0.0
http://erikveenstra.nl/tar2rubyscript/index.html#6.0.0
예시로 qtruby의 example에 있는 tetrix라는 게임을 하나의 exe 파일로 만드는 과정을 녹화해봤습니다.
'Programming > Ruby' 카테고리의 다른 글
| [Golf] るびまゴルフ 【第 3 回】38 bytes (0) | 2008/04/04 |
|---|---|
| [Golf] るびまゴルフ 【第 3 回】42 bytes (0) | 2008/03/31 |
| 루비 프로그램을 하나의 exe 파일로 바꾸기 (0) | 2008/03/31 |
| 테스트 주도 개발로 "숫자 세자리 마다 콤마 찍는 프로그램" 코딩하기 (2) | 2008/03/19 |
| QtRuby 1.4.9 를 Mac OSX 10.5.1에 깔기 (2) | 2008/03/10 |
| [CodeGolf] Choose (2) | 2008/01/25 |



