(프로그래밍을 전혀 모르는) 팀원들이 내가 짠 루비 스크립트를 써야 할 일이 있다보니, 이 스크립트들을 윈도우에서 동작하는 실행 파일로 만들 필요가 있었다.
이전에 csv2ufs와 마찬가지로 이번에도 rubyscript2exe를 쓸 생각이었는데, 이게 제대로 동작을 하지 않는 문제가 있었다. 구글 검색을 해 보니 루비가 업데이트되면서 동작 방식이 바뀐 것 때문에 생기는 문제인데, 해결책이 나와 있긴 했지만, 내 경우에는 이 방법이 통하지 않았다. 게다가 메인 프로그램 자체가 2007년에 0.5.3 버전이 나온 이후로 한 번도 업데이트되지 않고 있는만큼, 이 프로젝트는 이제 죽은 것이라고 생각해도 좋을 듯.
덕분에 비슷한 일을 하는 다른 프로그램들이 있는지를 알아보게 되었고, 두 가지의 프로젝트를 알게 되었다. 하나는 crate, 또 다른 하나는 ocra이다. 찬찬히 살펴보니 crate의 경우에는 절차가 꽤 복잡한 듯 보였고 ocra는 상대적으로 간단해 보였다. 그래서 그냥 ocra로 가기로 결정!
ocra를 사용해서 윈도우용 실행 프로그램을 만드는 것은 매우 간단하다. 우선
> sudo gem install ocra
로 설치를 마친 후에
> ocra script.rb
하면 그만이다.
내 경우에는 이렇게 만든 실행 파일을 실행시켰을 때 에러가 발생했는데, 무슨 이유인지는 모르지만 mime-type gem에서 제공하는 types.rb.data 파일을 찾을 수 없다는 메시지를 내 뱉는 것이었다. 그냥 통밥을 굴려서 스크립트 이름 뒤에 해당 파일의 긴 경로를 모두 적어주고 다시 만들었더니 아무 문제없이 완료! (이걸로 봐서는 이 녀석이 하는 일이라는 것이 일단 스크립트를 실행해서 어떤 파일들이 필요한지를 파악한 후에 해당 파일들을 몽땅 압축해서 넣어주는 것으로 보인다. 어떤 이유에서든 필요한 파일이 파악되지 않은 경우에는 당연히 해당 파일이 포함이 안되므로 에러가 날 것이고, 이런 경우에는 그냥 실행 파일을 만들 때 해당 경로의 파일을 넣어버리면 그만인 것이다.)
orca는 LZMA 압축을 기본으로 지원하므로 파일의 크기가 상대적으로 작은 편이라고 한다. GUI를 포함한 경우는 보통 3메가 정도, GUI를 포함하지 않는 작은 스크립트인 경우에는 보통 1메가 이하의 파일이 만들어진다고 하는데, 내 경우에는 매우 작은 프로그램이면서 여러 개의 gem들을 사용하는 관계로 1.35메가 정도 크기로 만들어졌다. (사실 요즘같은 시대에 실행파일 크기가 뭔 상관인가 할 수도 있지만, 요즘 싱가폴에서 살다보니 한국에서 살 때와는 파일 크기에 대한 기본적인 생각 자체가 달라진 듯 해서…)
아직 많이 해 본 것은 아니지만, 최근까지 개발이 이어지고 있는 것으로 봐서는 rubyscript2exe를 대체할 수 있을 듯 하다.
Pingback: Sinatra로 간단한 웹 서비스 개발