윈도우 인스톨러를 만드는 방법이 여럿 있는 것처럼 (말씀하신 것 외에도 NSIS나 WISE 같은 시스템이 있지요) 유닉스 환경도 마찬가지입니다.
1) 소스 배포
일반적인 방법입니다. 보통 ./configure; make; make install로 설치할 수 있도록 합니다. 그렇지 않은 경우 INSTALL 파일에 자세한 설명을 적으십시오.
2) 정적 링크
이미지나 글꼴 같은 부가적인 리소스 파일이 필요 없다면 C 라이브러리를 포함해서 전부 정적으로 링크해서 바이너리만 배포하는 방법이 있겠습니다. 크기가 커집니다. dietlibc 처럼 크기가 작은 C 라이브러리를 사용하는 경우 종종 쓰입니다.
3) 바이너리 tar
정적으로 링크된 바이너리나 잘 알려진 라이브러리만 사용하는 바이너리를 리소스 파일과 함께 tar로 묶어서 배포하고, tar를 아무 디렉토리에나 푼 뒤 ./run 같은 식으로 실행할 수 있도록 쉘 스크립트를 넣는 방법입니다. 디렉토리 경로가 하드코딩되지 않도록 주의해야 하고, /proc/self/exe를 읽거나 BinReloc을 사용하는 식으로 실행파일 경로를 알아내는 게 필요할 수도 있습니다.
4) makeself
makeself를 써서 쉘 스크립트 상태로 배포할 수 있습니다. 윈도우의 압축 실행파일과 비슷하다고 생각하시면 됩니다. 압축을 푼 뒤에 실행할 스크립트를 넣을 수도 있습니다. nVidia 드라이버가 이 방법을 사용합니다. http://www.megastep.org/makeself/
위와 같은 큰 갈래 외에도 세부사항으로 들어가면 알아야 할 내용이 많이 있습니다. 예를 들어, tar로 묶어서 배포하는 경우 압축을 풀면 현재 디렉토리에 풀리는 것이 아니라 "이름-버전"과 같은 형식의 새 디렉토리 아래에 풀리게 하는 것이 보통입니다. (그렇지 않으면 설치하는 사람들이 대단히 싫어합니다.) 쉘 스크립트의 경우 보통 확장자를 .bin으로 합니다. 텍스트 모드로 설치하는 경우에는 dialog 등을 써서 설치에 필요한 내용을 물어볼 수 있습니다. Sun Java나 Mozilla Firefox, OpenOffice.org 처럼 그냥 자기네가 인스톨러를 개발해서 쓰는 곳도 있습니다.
다양합니다
윈도우 인스톨러를 만드는 방법이 여럿 있는 것처럼 (말씀하신 것 외에도 NSIS나 WISE 같은 시스템이 있지요) 유닉스 환경도 마찬가지입니다.
1) 소스 배포
일반적인 방법입니다. 보통 ./configure; make; make install로 설치할 수 있도록 합니다. 그렇지 않은 경우 INSTALL 파일에 자세한 설명을 적으십시오.
2) 정적 링크
이미지나 글꼴 같은 부가적인 리소스 파일이 필요 없다면 C 라이브러리를 포함해서 전부 정적으로 링크해서 바이너리만 배포하는 방법이 있겠습니다. 크기가 커집니다. dietlibc 처럼 크기가 작은 C 라이브러리를 사용하는 경우 종종 쓰입니다.
3) 바이너리 tar
정적으로 링크된 바이너리나 잘 알려진 라이브러리만 사용하는 바이너리를 리소스 파일과 함께 tar로 묶어서 배포하고, tar를 아무 디렉토리에나 푼 뒤 ./run 같은 식으로 실행할 수 있도록 쉘 스크립트를 넣는 방법입니다. 디렉토리 경로가 하드코딩되지 않도록 주의해야 하고, /proc/self/exe를 읽거나 BinReloc을 사용하는 식으로 실행파일 경로를 알아내는 게 필요할 수도 있습니다.
4) makeself
makeself를 써서 쉘 스크립트 상태로 배포할 수 있습니다. 윈도우의 압축 실행파일과 비슷하다고 생각하시면 됩니다. 압축을 푼 뒤에 실행할 스크립트를 넣을 수도 있습니다. nVidia 드라이버가 이 방법을 사용합니다.
http://www.megastep.org/makeself/
5) 인스톨러
유닉스에도 Loki Setup이나 Bitrock InstallBuilder와 같이 윈도우 인스톨러 툴과 유사한 툴들이 있습니다. Mono 프로젝트에서 공식 인스톨러를 이 방법으로 배포합니다.
http://www.icculus.org/loki_setup/
http://www.bitrock.com/
6) 패키지
RPM이나 DEB 포맷으로 패키징을 하는 방법이 있습니다. 시스템 패키지가 아닌 경우에는 /opt 아래에 설치하는 것이 좋습니다. 오페라 웹 브라우저와 페도라 디렉토리 서버 등이 /opt 아래 설치하는 패키지로 배포됩니다.
Autopackage는 5와 6의 중간 쯤에 위치하는 방법입니다. 자세한 내용은 홈페이지를 참고하세요.
http://autopackage.org/
위와 같은 큰 갈래 외에도 세부사항으로 들어가면 알아야 할 내용이 많이 있습니다. 예를 들어, tar로 묶어서 배포하는 경우 압축을 풀면 현재 디렉토리에 풀리는 것이 아니라 "이름-버전"과 같은 형식의 새 디렉토리 아래에 풀리게 하는 것이 보통입니다. (그렇지 않으면 설치하는 사람들이 대단히 싫어합니다.) 쉘 스크립트의 경우 보통 확장자를 .bin으로 합니다. 텍스트 모드로 설치하는 경우에는 dialog 등을 써서 설치에 필요한 내용을 물어볼 수 있습니다. Sun Java나 Mozilla Firefox, OpenOffice.org 처럼 그냥 자기네가 인스톨러를 개발해서 쓰는 곳도 있습니다.
감사합니다.
이번에 unix시스템을 접하게되었는데 정말 무궁무진하네요..
많은 도움 되었습니다.
댓글 달기